比如 list<Order> 里装的都是按时间排好序的,
list.stream().collect(Collectors.toMap())
变成无序的 le,源码理解有难度,求指导
list.stream().collect(Collectors.toMap())
变成无序的 le,源码理解有难度,求指导

1 reidxx Sep 12, 2019 map 本身就是无序的啊。 自己 new 一个 map,往里面塞数据,遍历打印几次,每次顺序都可能不一样。 |
2 ignore Sep 12, 2019 可以使用 linkedHashMap |
3 freebird1994 Sep 12, 2019 via Android map 是无序数据结构啊…这问题令人无语 |
4 zzzzbw Sep 12, 2019 前面回答的不是很确切吧。map 只是接口啊,是由于(Collectors.toMap())生成的是一个 HashMap,而 HashMap 是无序的。至于 HashMap 为什么无序的可以去了解一下 哈希表 这种数据结构。 |
5 wysnylc Sep 12, 2019 toMap()默认是 HashMap,而 Hash 是不保证有序的 要想有序就改成 Collectors.toMap(k->k,v->v, (k1,k2)->k2,LinkedHashMap::new) |
6 EatYolkNot Oct 14, 2020 @wysnylc 请问这个 k1,k2 指代是啥意思? |
7 wysnylc Oct 14, 2020 @EatYolkNot #6 key 相同时的合并规则 |