【发布时间】:2020-03-10 11:27:27
【问题描述】:
我有一个简单对象的列表:
private String unit;
private Double value;
列表看起来像这样:
f, 1.0;
ml, 15.0;
g, 9.0
我创建了一个简单的函数,我想对这些值进行分组并将它们放入地图中,单位为键,对象列表为值,但我想保存原始列表中的顺序。这是我目前的解决方案:
myList.stream()
.collect(groupingBy(MyObject::getUnit));
但在那之后,我的地图按字母顺序排序: f, g, ml 代替 f, ml, g。 groupingBy 是否有任何替代方法来解决它?
【问题讨论】:
-
“字母”顺序是巧合,“f”和“g”的哈希码确实是有序的(长度相同)。
标签: java list java-stream grouping collectors