java stream学习

Java 8 API添加了一个新的抽象称为流Stream,Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。这种风格将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选, 排序,聚合等。元素是特定类型的对象,形成一个队列。 Java中的Stream并不会存储元素,而是按需计算。

package practice;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Random;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class StreamPractice {
    public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add("a");
        list.add("c");
        list.add("b");

        //map&foreach
        Stream stream = list.stream().map(a-> a+"---");
        stream.forEach(i-> System.out.println(i));

        Random random = new Random();
        random.ints().limit(10).forEach(System.out::println);

        //sorted
        List list2 = list.stream().sorted().collect(Collectors.toList());
        list2.forEach( i -> System.out.println(i));

        //filter
        List strings = Arrays.asList("abc", "", "bc", "efg", "abcd","", "jkl");
        // 获取空字符串的数量
        long count = strings.stream().filter(string -> string.isEmpty()).count();
        System.out.println(count);

        //limit&count
        strings.stream().limit(3).forEach(i-> System.out.println(i));
        System.out.println(strings.stream().count());

    }
}
a---
c---
b---
-796654754
-2140610933
-1800391838
303821669
124875284
1310904552
-1133289218
801029693
-30572287
-1138906247
a
b
c
2
abc

bc
7

 

你可能感兴趣的:(JAVA)