// 输出c b a
List<String> a = new LinkedList<String>();
a.add("c");
a.add("b");
a.add("a");
a.stream().map(x -> {
System.out.println(x);
return x;
}).count();
Map<String,String> m = new HashMap<String,String>();
m.put("4","D");
m.put("2","B");
m.put("1","A");
m.put("3","C");
// m.values() 默认顺序为A B C D
// 因此stream map的处理顺序也是 A B C D
m.values().stream().map(x -> {
System.out.println(x);
return x;
}).count();
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.stream().map((Function<String, Object>) s -> s + "1").forEach(System.out::println);
// output:
// A1
// B1
您好,非並發流情況下,stream的map方法的處理順序依賴於流的當前處理上游集合的順序,ArrayList的順序預設為自然順序(插入順序),因此ArrayList集合轉為的流的map方法能夠以自然順序處理集合元素。
map
映射,這個跟排序沒有任何關係。parallelStream不保證順序,streamp保證順序