java - 如何按键顺序对HashMap进行排序?

标签 java sorting hashmap

我想要一份按键排序的整个 HashMap 的副本。 hashmap 的类型是 HashMap。以下是我所做的。

SortedSet<String> keys = new TreeSet<String>(unsortedap.keySet());
        for (String key : keys) {
            String value = unsortedMap.get(key);
            // I have noticed that here the key values are in order
            // How do I copy these ordered values to a hashmap?
}

使用 TreeSet 后,这些值似乎已排序,但是,我不确定现在该怎么办。如何将这些值放入新的 HashMap 中?

最佳答案

最简单的方法是将键值对放入 TreeMap 中。通常,这将按默认比较器顺序按键排序。如果您需要自定义排序,您可以使用自定义比较器构造 TreeMap,该比较器实现您的首选排序。

不用你的代码,只需使用:

SortedMap<String, String> sortedMap = new TreeMap<>(unsortedMap);

您可以确信 TreeMap 将使用与 TreeSet 相同的排序,只要因为 TreeSet 无论如何都使用带有 null 值的 TreeMap 来实现它。

关于java - 如何按键顺序对HashMap进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26640526/

相关文章:

java - 使用 GSON 的 JSON 反序列化会跳过 HashMap 内的 HashMap 中的数据成员

javascript - 创建一个简单的单向哈希

java - Java 中的字数统计

java - 删除文件中的一行 (Android/java)

java - JBoss AS 6 中 EntityManager 初始化之前的代码 Hook

c - 基于另一个数组顺序的数组排序

python - 确定子字符串在字符串列表中的位置

python - 对对象列表进行排序,TypeError : unorderable types

java - 列表正在用最新值替换所有旧值

java - SpagoBI/BIRT JDBC 连接