Stream流学习1

这块我也还不熟悉,请带思考阅读.

1.流介绍

2.流的创建

3.流的使用

3.1筛选与切片

3.1.1 stream().filter() 元素过滤
3.1.2 stream().limit() 获取指定的个数
3.1.3 stream().skip() 跳过指定个元素
3.1.4 stream().distinct() 元素去重
        // stream0_2.forEach(System.out::println); 这是结束流的操作
        // 如使用下面的3号流 输出stream0_1或者stream0_2后前面的流就不能再在下方使用了.

        /*1.筛选与切片*/
        //过滤 取多少个 跳过几个 去重
        Stream<Integer> stream0 = Stream.of(6, 4, 6, 7, 3, 9, 8, 10, 12, 14, 14);
        //filter() 过滤  eg:大于5的元素
        Stream<Integer> stream0_1 = stream0.filter(e -> e>=8);
//        stream0_1.forEach(System.out::println);  //9 8 10 12 14 14

        //limit(n) 获取n个元素
        Stream<Integer> stream0_2 = stream0_1.limit(5);
//        stream0_2.forEach(System.out::println);  //9 8 10 12 14

        //skip(n) 跳过n元素,配合limit(n)可实现分页
        Stream<Integer> stream0_3 = stream0_2.skip(1);
//        stream0_3.forEach(System.out::println); //8 10 12 14

        //distinct() 通过流中元素的 hashCode() 和 equals() 去除重复元素
        Stream<Integer> stream0_4 = stream0_3.distinct();
//        stream0_4.forEach(System.out::println); //8 10 12 14

        //整合下 数组中取3个不重复且大于5的元素
        // 6 6 7 去重了6 所以为6 7
        Stream<Integer> stream0_5 = Stream.of(6, 4, 6, 7, 3, 9, 8, 10, 12, 14, 14).filter(e -> e>5).limit(3).distinct();
        stream0_5.forEach(System.out::println);

3.2 映射

3.2.1 stream().map() 应用方法到每一个元素上,并将其映射成一个新的元素.
           /* 2.映射*/
        //两个元素的数组
        List<String> strList = Arrays.asList("1,2,3", "a,b,c");
//        strList.forEach(System.out::println);

        //stream().map() 函数e.replace(",", "")会被应用到e上,并将其映射成一个新的元素。
        Stream<String> stream1 = strList.stream().map(e -> e.replace(",", ""));
        stream1.forEach(System.out::println); 
3.2.2 stream().flatMap() 将流中的元素都替换成一个新的流

结果

123
abc
 //stream().flatMap() 流中的每个值都换成另一个流,然后把所有流连接成一个流。
        // e->{ 方法内需要返回一个流 }
        Stream<String> stream1_1 = strList.stream().e -> {
            String[] split = e.split(",");
            Stream<String> tempStream = Arrays.stream(split);
            return tempStream;
        });
        stream1_1.forEach(System.out::print);

结果

123abc

3.3 排序

3.4 消费

posted @ 2020-11-03 08:50  羊37  阅读(93)  评论(0编辑  收藏  举报