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

时间:2014-10-29 20:56:15

标签: 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?

1 个答案:

答案 0 :(得分:2)

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

代替您的代码,只需使用:

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

你可以确定TreeMap将使用与TreeSet相同的顺序,只是因为TreeSet使用了一个带有空值的TreeMap来实现它的实现。