【发布时间】:2014-12-11 19:01:21
【问题描述】:
我得到了 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());
}
});
}
我已经这样做了几个小时了,所以我想你可以就此提出一些建议。
【问题讨论】:
-
你得到的结果是什么,你期望的结果是什么?
-
我希望上面的代码可以根据 String-compareTo 的 'translatedValue' 的结果对你的值对象进行排序......这已经发生了吗?
-
为什么要把列表放回地图上?没有必要这样做。排序应该工作文件。
-
我现在担心的是 for (List
value : facetsInCategories.values()) 在第二次迭代中抛出错误。我认为这不应该发生。 -
facetsInCategories.put("test", value);只是为了测试,我现在从问题中删除了它。
标签: java sorting hashmap comparator