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

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

文章目录
    • 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<String> strings = Arrays.asList("1", "2", "3");
//        返回一个顺序流
        Stream<String> stream = strings.stream();
//  返回一个并行流
        Stream<String> stringStream = strings.parallelStream();

2.2通过数组直接创建

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

 Stream<Object> stream1 = Arrays.stream(strings.toArray());


2.3通过Stream.of创建
      Stream<Integer> integerStream = Stream.of(1, 2, 3, 5, 6, 7, 8);
        Stream<String> 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<Student> studentList = StudentData.getStudents();
        Stream<Double> doubleStream = studentList.stream().map(Student::getScore);
        Optional<Double> reduce1 = doubleStream.reduce(Double::sum);
        System.out.println(reduce1.orElse(0.0));
3.6 (collect) 收集,可以为Set(无序,去除重复),List(有序,有重复)
        Set<String> set = inspectorUpholds.stream()

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


   

        List<String> 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<? extends List> list1 = list.stream().filter(item -> zjstringsList.stream().allMatch(each -> !item.equals(each))).collect(Collectors.toList());

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/730773.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-27
下一篇 2022-04-27

发表评论

登录后才能评论

评论列表(0条)

保存