Java排序HashMap值为List <value> </value>

时间:2014-10-16 12:04:41

标签: java sorting hashmap comparator

我得到了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());
            }
    });
}

我现在已经这样做了几个小时,所以我认为你可能会以某种方式提出建议。

2 个答案:

答案 0 :(得分:1)

代码看起来很好。 Collections.sort将对列表进行排序。

为什么需要这条线?

facetsInCategories.put("test", value);

列表已添加到hashmap中。他们将被分类到原来的位置。

从null安全的角度来看,你假设这永远不会为null:

o1.getTranslatedValue()

答案 1 :(得分:0)

评论这一行,它应该可以解决问题:

facetsInCategories.put("test", value);