zoukankan      html  css  js  c++  java
  • 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 消费

  • 相关阅读:
    ie兼容,手机端兼容问题
    JS-cookie和正则表达式
    第六节蓝桥杯 方格填数
    最长公共子串长度
    上台阶问题
    各种好东西
    Painting the balls (dp优化)
    Nobita's New Filesystem (bitset)
    恐狼后卫 (区间dp)
    CF701F String set queries (分块思想+暴力)
  • 原文地址:https://www.cnblogs.com/yang37/p/13917583.html
Copyright © 2011-2022 走看看