stream流的应用

Integer totalOrderCount = orderCountList.stream().reduce(Integer::sum).get();

List<String> names = salesTop10.stream().map(GoodsSalesDTO::getName).collect(Collectors.toList());

的区别? 

这两行代码都使用了 Java 8 中的 Stream API,但是它们的作用和结果略有不同:

  1. Integer totalOrderCount = orderCountList.stream().reduce(Integer::sum).get();

    • 这行代码首先将 orderCountList 转换为一个流(Stream)。
    • 然后使用 reduce 操作将流中的元素进行聚合。在这里,使用了 Integer::sum 方法来对流中的所有元素求和。
    • 最后调用 get() 方法获取聚合后的结果,因为 reduce 方法返回的是一个 Optional 对象,所以需要调用 get() 方法来获取其中的值。
    • 最终,totalOrderCount 变量保存了 orderCountList 中所有元素的总和。
  2. List<String> names = salesTop10.stream().map(GoodsSalesDTO::getName).collect(Collectors.toList());

    • 这行代码首先将 salesTop10 转换为一个流(Stream)。
    • 然后使用 map 操作将流中的每个元素映射为另一个值。在这里,使用了 GoodsSalesDTO::getName 方法来从每个 GoodsSalesDTO 对象中提取名称。
    • 接着使用 collect 操作将映射后的结果收集到一个列表中。在这里,使用了 Collectors.toList() 方法将流中的元素收集到一个列表中。
    • 最终,names 变量保存了 salesTop10 中每个 GoodsSalesDTO 对象的名称组成的列表。

因此,第一行代码计算了一个整数列表中所有元素的总和,而第二行代码则从一个对象列表中提取了每个对象的名称,并将这些名称存储在一个新的列表中。两者的主要区别在于它们所操作的数据类型和所执行的操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值