[英]Java stream map and collect - order of resulting container
List<MyObject> myList = new ArrayList<>();
//populate myList here
List<String> nameList = myList.stream()
.map(MyObject::getName)
.collect(Collectors.toList());
在上面的代码中,我可以期待的是为了MyObject
名称在nameList
总是相同的顺序myList
?
是的,即使您使用的是并行流,只要您没有将其显式转换为unordered()
模式,您也可以预料到这一点。
顺序在顺序模式下永远不会改变,但在并行模式下可能会改变。 流变得无序:
unordered()
调用将其显式转换为无序模式HashSet
流是无序的,因为顺序是依赖于实现的,你不能依赖它)forEach()
操作或收集到无序收集器,如toSet()
)在您的情况下,这些条件都不满足,因此您的流已被订购。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.