方法名   方法作用    返回值类型   方法种类
count   统计个数    long      终结
forEach   逐一处理    void      终结
filter    过滤      Stream      函数拼接
limit   取用前几个 Stream      函数拼接
skip    跳过前几个 Stream      函数拼接
map     映射      Stream      函数拼接
concat    组合      Stream      函数拼接
sort    排序      Stream      函数拼接
distinct  去重      Stream      函数拼接
match   匹配      Stream      函数拼接
max     求最大值
min     求最小值
reduce    ....
mapToInt  ....count
List<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");
        long count = list.stream().count();
        System.out.println(count);//5forEach
List<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");
        list.forEach(System.out::println);filter

List<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");
        long a = list.stream()
                .filter(e -> e.equals("a"))
                .count();
        System.out.println(a);limit

limit方法可以对流进行截取处理,只取前n个数据
List<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");
        list.stream()
                .limit(2)
                .forEach(System.out::println);skip

 希望跳过前面几个元素,可以使用skip方法来获取
List<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");
        list.stream()
                .skip(4)
                .forEach(System.out::println);reduce

List<String> list = new ArrayList<>();
        list.add("1");
        list.add("22");
        list.add("1");
        list.add("22");
        list.add("22");
        Integer reduce = list.stream()
                .map(Integer::parseInt)
                .reduce(0, (x, y) -> {
                    System.out.println("x="+x+",y="+y);
                    return x + y;
                });
        System.out.println(reduce);
mapToInt
Integer占用的内存比int多,在Stream流操作中会自动装箱和拆箱操作
 为了提高程序代码的效率,我们可以先将流中Integer数据转化为int数据,然后在操作
List<Integer> list = new ArrayList<>();
        list.add(22);
        list.add(34);
        list.add(5);
        list.add(67);
        IntStream intStream = list.stream()
                .mapToInt(Integer::intValue);
        intStream.forEach(System.out::println);concat
如果有两个流,希望合并成为一个流,那么可以使用Stream接口的静态方法concat
List<Integer> list = new ArrayList<>();
        list.add(22);
        list.add(34);
        List<Integer> list1 = new ArrayList<>();
        list1.add(5);
        list1.add(67);
        Stream.concat(list.stream(),list1.stream())
                .forEach(System.out::println);                
                










