如何根据值来对HashMap的元素进行排序?

Ana*_*saw 4 java sorting hashmap data-structures

我有以下内容HashMap:

HashMap<String, Integer> counts = new HashMap<String, Integer>();
Run Code Online (Sandbox Code Playgroud)

根据价值观点订购的最简单方法是什么?

Lou*_*man 8

您无法Map按值排序,尤其是不能HashMap排序,根本无法排序.

相反,您可以对条目进行排序:

List<Map.Entry<String, Integer>> entries = new ArrayList<Map.Entry<String, Integer>>(map.entrySet());
Collections.sort(entries, new Comparator<Map.Entry<String, Integer>>() {
  public int compare(
      Map.Entry<String, Integer> entry1, Map.Entry<String, Integer> entry2) {
    return entry1.getValue().compareTo(entry2.getValue());
  }
});
Run Code Online (Sandbox Code Playgroud)

将按计数的升序对条目进行排序.