我得到了HashMap:
HashMap<String, List<Value>> facetsInCategories = new HashMap<>();
我需要在此HashMap的值内对List of Values进行排序。列表中的值有四个字段,我需要按&#34; translatedValue&#34;对列表进行排序。串。这就是为什么我把&#34; getTranslatedValue&#34;在自定义比较器中这是值对象字段:
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());
}
});
}
我现在已经这样做了几个小时,所以我认为你可能会以某种方式提出建议。
答案 0 :(得分:1)
代码看起来很好。 Collections.sort将对列表进行排序。
为什么需要这条线?
facetsInCategories.put("test", value);
列表已添加到hashmap中。他们将被分类到原来的位置。
从null安全的角度来看,你假设这永远不会为null:
o1.getTranslatedValue()
答案 1 :(得分:0)
评论这一行,它应该可以解决问题:
facetsInCategories.put("test", value);