Stream

Stream的好處

一、Stream AP的引入彌補了JAVA函數式編程的缺陷。
二、Stream相比集合類佔用內存更小:集合類裏的元素是存儲在內存裏的,Stream裏的元素是在訪問的時候才
被計算出來。(有點相似懶加載、延遲計算)
三、Stream能夠建立無窮個數的集合。java

代碼示例編程

    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的方法

一、filter() 元素篩選
二、map() 元素變換/操做
三、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);
    }
相關文章
相關標籤/搜索