Stream

Stream的好处

1、Stream AP的引入弥补了JAVA函数式编程的缺陷。
2、Stream相比集合类占用内存更小:集合类里的元素是存储在内存里的,Stream里的元素是在访问的时候才
被计算出来。(有点类似懒加载、延迟计算)
3、Stream可以创建无穷个数的集合。

代码示例

    class NumSupplier implements Supplier<Long> {
        long value = 0;

        public Long get() {
            this.value = this.value + 1;
            return this.value;
        }
    }

    /**
     * 无穷集合
     */
    public static void numTest(){
        Stream<Long> natural = Stream.generate(new NumSupplier());
        natural.map((x) -> {
            return x * x;
        }).skip(2).limit(20).forEach(System.out::println);


//转list stream has already been operated upon or closed
List<Long> collect = natural.collect(Collectors.toList());
}

Stream的方法

1、filter() 元素筛选
2、map() 元素变换/操作
3、forEach() 元素遍历

代码示例

    /**
     * Stream Test
     */
    public static void streamTest(){
        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
        Stream<Integer> stream = numbers.stream();
        stream.filter(a->{
            a += 10;
            return a > 15;
        }).map(a -> {
            return a * a;
        }).forEach(System.out::println);
    }

  

posted @ 2016-11-23 15:20  喝酒骑驴撞城管  阅读(143)  评论(0编辑  收藏  举报