JAVA8新特性-Stream流操作集合

举报
小小张自由--张有博 发表于 2022/03/24 10:40:18 2022/03/24
【摘要】 JAVA8新特性-Stream流操作集合

Stream类全路径为:java.util.stream.Stream

     Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作(aggregate operation),或者大批量数据操作 (bulk data operation)。Stream API 借助于同样新出现的 Lambda 表达式,极大的提高编程效率和程序可读性。

  Stream将要处理的元素集合看作一种流,在流的过程中,借助Stream API对流中的元素进行操作,比如:筛选、排序、聚合等。

stream的特性

  1. stream不存储数据,而是按照特定的规则对数据进行计算,一般会输出结果。
  2. stream不会改变数据源,通常情况下会产生一个新的集合或一个值。
  3. stream具有延迟执行特性,只有调用终端操作时,中间操作才会执行。

集合取某个值的集合

List<String> taskLidList = qualityVideoList.stream()
                .map(QualityDetails::getTaskLid).distinct().collect(Collectors.toList());

集合转map集合

Map<String, List<QualityResultDetails>> detailMap = detailsList.stream().filter(f -> !Strings.isNullOrEmpty(f.getTaskLid()))
                .collect(Collectors.groupingBy(QualityResultDetails::getTaskLid, Collectors.toList()));

集合转map实体

   Map<String, CustomerStaffDataVO> collect = customerStaffDataVOList.stream().collect(
            Collectors.toMap(CustomerStaffDataVO::getAdminUserLid, v -> v, (v1, v2) -> v1)
);

集合切成多个集合

 List<CustomerServiceLog> customerServiceLogLists = Lists.newArrayList();

            List<CompletableFuture> completableFutureList = Lists.newArrayList();

            List<List<String>> split = CollectionUtil.split(taskLidList, Runtime.getRuntime().availableProcessors());
            for (List<String> stringList : split) {
                completableFutureList.add(CompletableFuture.runAsync(() -> getCustomerServiceLogList(stringList, customerServiceLogLists)));
            }

            CompletableFuture.allOf(completableFutureList.toArray(new CompletableFuture[completableFutureList.size()])).join();
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。