Java使用Stream流

这篇具有很好参考价值的文章主要介绍了Java使用Stream流。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在实际的开发工作中,集合是我们非常常用的一种。
当我们想对集合内的对象加工时,你是不是首先想到了for循环?

其实在java8以后,引入的Stream流,同时搭配lambda的使用,可以支持一系列复杂的操作,使我们操作集合时更加方便的同时,也会使代码看起来更加简洁

假设我们有一个集合

List<Model> modelList=xxMapper.selectModelInfo();

我们可以借助Stream对modelList进行一系列操作

1.循环

modelList.Stream.map(model->{
	model.setName("mm");
	return model;
}).collect(Collectors.toList());

2.提取某个元素成新的集合

List<String> nameList=modelList.stream().map(
Model::getName).distinct().collect(Collectors.toList()
);


taCodeList=settlestList.stream().map(x-> x.getTano() ).collect(Collectors.toList());

 2.1.提取某几个元素成新的集合

  List<DisCodeAndCustomerIdRespBo> respBoList=tpAcctSeqList.stream().map(
                tpAcctSeq -> new DisCodeAndCustomerIdRespBo(tpAcctSeq.getDisCode(),tpAcctSeq.getCustomerId())
                ).collect(Collectors.toList());

3.转成map

Map<String,Model> modelMap = modelList.stream().collect(
Collectors.toMap(Model::getName,model -> model,(s, s2) -> s2)
);

4.转成map并分组

Map<String, List<Model>> modelMap = modelList.stream().collect(
Collectors.groupingBy( Model::getName)
);

5.过滤

modelList=modelList.stream().filter(
item -> "xiaoMing".equals(item.getName())
).collect(Collectors.toList());

 5.1.过滤取符合条件的第一个

  Bean bean=beanList.stream().filter(x->
                x.getId().equals(id)).findFirst().get();

6.先按某个字段分组,再对某个字段汇总

        
        Map<String, List<RptCustFee>> channelFeeMap = rptCustFeeList.stream().collect(
                Collectors.groupingBy(RptCustFee::getChannelId));
        Map<String,BigDecimal> channelBalanceAmtMap=new HashMap<>();
        
        channelFeeMap.forEach((k,v)->{
            channelBalanceAmtMap.put(k,
                    v.stream().map(RptCustFee::getBalanceAmt).reduce(BigDecimal.ZERO,BigDecimal::add));
        });

后续会持续完善~~~文章来源地址https://www.toymoban.com/news/detail-565359.html

到了这里,关于Java使用Stream流的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java中的stream基本使用

    Stream流把真正的函数式编程风格引入到Java中,而且代码特别简介。 1、获取Stream流 2、中间方法 3、终结方法 Collection体系集合 使用默认方法stream()生成流, default Stream stream() Map体系集合 把Map转成Set集合,间接的生成流 数组 通过Arrays中的静态方法stream生成流 同种数据类型的

    2024年02月15日
    浏览(34)
  • 【Stream流】java中Stream流详细使用方法

    在Java中, Stream 是一种用于处理集合数据的流式操作API。它提供了一种简洁、灵活、高效的方式来对集合进行各种操作,如过滤、映射、排序等。下面是一些 Stream 的常用功能和详细的代码示例: 创建流: 从集合创建流: stream() 方法可以从集合创建一个流。 从数组创建流:

    2024年02月07日
    浏览(52)
  • Java Stream API的基本使用方法

    Java各个版本所更新的主要内容: 1.Java SE 8:引入了一些新特性,如lambda表达式、Stream API、格式化日期、国际化等。此外,还对并发编程进行了改进,引入了线程安全的 Stream API 。 2.Java SE 9:新增了分布式架构的支持,引入了CompletableFuture、ZK等新特性。此外,还对Jit编译器进

    2024年02月03日
    浏览(45)
  • java stream flatMap的使用及个人理解

    1.我认为用简单朴素的理解和使用,是对工具最好的诠释。java jdk8开始提供了stream流,方便我更高效的操作集合和编写代码。其中flatmap流中间操作api,我认为简单来说是对“集合中的集合的操作和展开”。比如说,一个对象集合里面的每个对象还有个集合对象。这时,我们如

    2024年01月18日
    浏览(36)
  • Java8使用Stream流实现List列表简单使用

       目录 1.forEach() 2.filter(T - boolean) 3.findAny()和findFirst() 4.map(T - R) 和flatMap(T - stream) 5.distinct() 去重 6.limit(long n)和skip(long n)  7.anyMatch(T - boolean) 8.allMatch(T - boolean) 9.noneMatch(T - boolean) Java8提供了Stream(流)处理集合的关键抽象概念,Stream 使用一种类似用 SQL 语句从数据库查询数

    2023年04月27日
    浏览(90)
  • Java使用Stream API对于数据列表经常处理

    先提供一些简单到复杂的常见例子,您可以根据这些例子进行进一步的开发和学习: 查询表中所有数据: 根据条件查询单个结果: 根据条件查询多个结果,并取前几条: 对查询结果进行排序: 过滤符合条件的结果: 对查询结果进行分页: 对查询结果进行统计: 对查询结

    2024年02月13日
    浏览(42)
  • JAVA中对list使用stream对某个字段求和

    对于List对象 或者ListMapString,integer等类型的数组,如何快速的求出list数组中某个对象的某个属性的和,平均数,统计数,最大值,最小值,等: 使用 XXXSummaryStatistics统计类实现: 运行结果如下: 相应的还有DoubleSummaryStatistics, LongSummaryStatistics

    2024年02月14日
    浏览(44)
  • Java stream流toMap使用过程中空指针问题

    Java8中stream操作list时常见的一个错误: 排查原因: 定位到代码中发现从数据查询是存在数据的 排查stream前对象为null的情况,那问题只能出现在toMap这里了 我们需要知道toMap是怎么帮我们封装数据的,先搞明白toMap的原理,点击源码可以看到他并不是通过map中的put方法封装数

    2024年02月05日
    浏览(37)
  • 使用Java的stream().filter方法进行数据筛选

    在Java中,Stream是一个非常强大的工具,用于处理集合数据。Stream提供了一系列的操作,使我们能够轻松地对数据进行筛选、转换和处理。其中, filter 方法是Stream中的一个关键操作,它允许我们根据给定的条件筛选出符合条件的元素。 在本文中,我们将深入探讨Java中 Stream

    2024年02月07日
    浏览(54)
  • Java8-使用stream.sorted()对List排序

    1.流的定义 Stream 中文称为 “流”,通过将集合转换为这么一种叫做 “流” 的元素序列,通过声明性方式,能够对集合中的每个元素进行一系列并行或串行的操作! 如果流中的元素的类实现了 Comparable 接口,即有自己的排序规则,那么可以直接调用 sorted() 方法对元素进行排

    2024年02月16日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包