gpt4 book ai didi

Java 流映射和收集 - 结果容器的顺序

转载 作者:IT老高 更新时间:2023-10-28 20:44:14 25 4
gpt4 key购买 nike

List<MyObject> myList = new ArrayList<>(); 
//populate myList here

List<String> nameList = myList.stream()
.map(MyObject::getName)
.collect(Collectors.toList());

在上面的代码中,我可以期望 nameListMyObject 名称的顺序总是与 myList 的顺序相同吗?

最佳答案

是的,即使您使用并行流,只要您没有将其显式转换为 unordered(),您也可以预料到这一点。模式。

顺序在顺序模式下永远不会改变,但在并行模式下可能会改变。流变得无序:

  • 如果通过 unordered() 调用显式将其变为无序模式
  • 如果流源报告它是无序的(例如,HashSet 流是无序的,因为顺序取决于实现,您不能依赖它)
  • 如果您正在使用无序终端操作(例如,forEach() 操作或收集到无序收集器,如 toSet())

在您的情况下,这些条件都不满足,因此您的流是有序的。

关于Java 流映射和收集 - 结果容器的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30258566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com