栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Stream流使用,收集成一个List或者Set集合,可以代替for循环使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Stream流使用,收集成一个List或者Set集合,可以代替for循环使用

文章目录
    • 1.Stream流是什么?
      • 2. stream流的创建方式?
        • 2.1通过集合直接创建
        • 2.2通过数组直接创建
        • 2.3通过Stream.of创建
      • 3. Stream对数据进行操作
        • 3.1 (filter,skip,limit,distinct)筛选和切片(方法直接可以通过链式编程写出)
        • 3.2 map映射
        • 3.3 进行排序
        • 3.4 (allmatch,noneMatch,findAny,filter)匹配查找
        • 3.5 (reduce)归约
        • 3.6 (collect) 收集,可以为Set(无序,去除重复),List(有序,有重复)
      • 4.用于筛选一个集合中不包含另外一个集合

1.Stream流是什么?

它是jdk8 的java新特性, 主要是针对集合进行数据的筛选和查找操作,是一种高效且易用的数据处理方式 ,所以可以直接使用stream流来替代for或者while循环的使用。

2. stream流的创建方式? 2.1通过集合直接创建
        List strings = Arrays.asList("1", "2", "3");
//        返回一个顺序流
        Stream stream = strings.stream();
//  返回一个并行流
        Stream stringStream = strings.parallelStream();

2.2通过数组直接创建

可以把上面的集合直接转化为数组

 Stream stream1 = Arrays.stream(strings.toArray());


 
2.3通过Stream.of创建 
      Stream integerStream = Stream.of(1, 2, 3, 5, 6, 7, 8);
        Stream stringStream1 = Stream.of("11", "22", "33");
3. Stream对数据进行操作 3.1 (filter,skip,limit,distinct)筛选和切片(方法直接可以通过链式编程写出) 3.2 map映射
  inspectorUpholds.stream()
                .map(InspectorUphold::getPerid)
                .collect(Collectors.toList()).forEach(System.out::println);
3.3 进行排序
list.stream().sorted(Comparator
            .comparingInt(Student::getAge));
3.4 (allmatch,noneMatch,findAny,filter)匹配查找 3.5 (reduce)归约
// 计算学生总分
        List studentList = StudentData.getStudents();
        Stream doubleStream = studentList.stream().map(Student::getScore);
        Optional reduce1 = doubleStream.reduce(Double::sum);
        System.out.println(reduce1.orElse(0.0));
3.6 (collect) 收集,可以为Set(无序,去除重复),List(有序,有重复)
        Set set = inspectorUpholds.stream()

                .collect(Collectors.groupingBy(InspectorUphold::getPerid))
                .keySet();


   

        List collect1 = inspectorUpholds.stream()
                .map(InspectorUphold::getPerid)
                .collect(Collectors.toList());  
 inspectorUpholds.stream()
                .map(InspectorUphold::getPerid)
                .collect(Collectors.toList()).forEach(System.out::println);
4.用于筛选一个集合中不包含另外一个集合

list为大的集合,zjlist小的

    List list1 = list.stream().filter(item -> zjstringsList.stream().allMatch(each -> !item.equals(each))).collect(Collectors.toList());
转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号