• Java之Stream笔记


    Stream流的创建方法

        public static void main(String[] args) {
    
            Stream stream1 = Stream.of("hello","world","hello stream");
    
            String[] myArray = new String[]{"hello","world","hello stream"};
            Stream stream2 = Arrays.stream(myArray);
            Stream stream3 = Stream.of(myArray);
    
            List<String> list = Arrays.asList(myArray);
            Stream stream4 = list.stream();
    
    
            stream1.forEach(System.out::println);
    
            stream2.forEach(System.out::println);
    
            stream3.forEach(System.out::println);
            
            stream4.forEach(System.out::println);
    
        }

    Stream的基础使用:

        public static void main(String[] args) {
            IntStream.range(1,10).forEach(System.out::println);
    
            //我来算一算 1+...+100 等于多少
            IntStream.rangeClosed(1,100).reduce(Integer::sum).ifPresent(System.out::print);
        }

    函数式编程传递的是一种行为,根据传递的行为处理数据

        public static void main(String[] args) {
    
            Stream<java.lang.String> stream = Stream.of("hello","world","hello stream");
    
            String[]  list =  stream.toArray(length -> new String[length]);
    
            for (int i = 0 ;i<list.length;i++){
                System.out.println(list[i]);
            }
        }
    <A> A[] toArray(IntFunction<A[]> generator);方法接收一个IntFunction<A[]>类型函数式接口,在IntFunction<A[]>中接收一个int 返回一个R 也就是返回A[],文档中有说明,【The generator function takes an integer, which is the size of the desired array 】这个int值就是这个流中array的size。

    所以这个lambada表达式是:

    String[] list = stream.toArray(length -> new String[length]);

    看到new Stirng[length],我们明显可以使用构造方法引用:

    String[] list2 = stream.toArray(String[]::new);
        public static void main(String[] args) {
    
            Stream<java.lang.String> stream = Stream.of("hello","world","hello stream");
    
    //        String[]  list =  stream.toArray(length -> new String[length]);
    //        for (int i = 0 ;i<list.length;i++){
    //            System.out.println(list[i]);
    //        }
    
            //等价于:
            String[] list2 = stream.toArray(String[]::new);
            for (int i = 0 ;i < list2.length;i++){
                System.out.println(list2[i]);
            }
        }
  • 相关阅读:
    第4次作业(条件)比较大小。第3次作业(条件)计算火车运行时间。
    GitHub搜索技巧
    flex实现左中固定不变,右边自适应
    JavaScript高级__原型继承+组合继承
    JavaScript高级__深入了解闭包
    JavaScript高级__执行上下文代码案例
    JavaScript中的显式原型链 prototype 和隐式原型 __proto__
    谷歌强大插件收集,持续更新。。。
    js中~~和^=
    vue自定义指令----directive
  • 原文地址:https://www.cnblogs.com/zhvip/p/12838108.html
Copyright © 2020-2023  润新知