Lah*_*ima 41 java list java-8 java-stream
List<MyObject> myList = new ArrayList<>();
//populate myList here
List<String> nameList = myList.stream()
.map(MyObject::getName)
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,我可以期望MyObject名称nameList的顺序总是与顺序相同myList吗?
Tag*_*eev 55
是的,即使您使用并行流,只要您没有明确地将其转换为unordered()模式,您就可以期待这一点.
顺序在顺序模式下永远不会改变,但在并行模式下可能会改变.流也变得无序:
unordered()调用明确将其转换为无序模式HashSet流是无序的,因为顺序是依赖于实现的,并且您不能依赖它)forEach()操作或收集无序收集器等toSet())在您的情况下,没有满足这些条件,因此您的流被订购.