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

标签 java sorting data-structures hashmap

<分区>

我有以下 HashMap:

HashMap<String, Integer> counts = new HashMap<String, Integer>();

根据值对其进行排序的最简单方法是什么?

最佳答案

您不能根据值对 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());
  }
});

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

关于java - 如何根据值对 HashMap 的元素进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12919659/

相关文章:

python - 基于特定元素对列表进行排序 - Python

c++ - 如何使快速排序算法中已排序数组的交换次数为零?

c# - 使用哪个 C# 集合代替 List<KeyValuePair<string, double>>?

c++ - 物理 vector 表示

java - FileWriter 仅在没有 GUI 的情况下工作

java - 使用 RandomAccessFile 和 BufferedReader 来加速文件读取

java - 如何在 Swing 桌面应用程序中部署 JavaFX

java - 模拟 InboundJaxrsResponse

没有lambda表达式的python排序

data-structures - innodb中叶子节点在物理空间是如何 split 的?