我得到了HashMap:
HashMap<String, List<Value>> facetsInCategories = new HashMap<>();
我需要对此 HashMap 的值内的值列表进行排序。列表中的值有四个字段,我需要按“translatedValue”字符串对列表进行排序。这就是为什么我将“getTranslatedValue”放入自定义比较器中。这是值对象字段:
public String name;
public int count;
private String translatedValue;
private String translation;
这是我尝试过的:
for (List<Value> value : facetsInCategories.values()) {
Collections.sort(value, new Comparator<Value>() {
@Override
public int compare(Value o1, Value o2) {
return o1.getTranslatedValue().compareTo(o2.getTranslatedValue());
}
});
}
我已经这样做了几个小时了,所以我想你可以就此提出一些建议。
最佳答案
代码看起来不错。 Collections.sort 将对列表进行排序。
为什么需要这条线?
facetsInCategories.put("test", value);
列表已添加到 HashMap 中。它们将按原地排序。
从空安全的角度来看,您假设这永远不会为空:
o1.getTranslatedValue()
关于Java 对 List<Value> 的 HashMap 值进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26403936/