Java将Hashmap放入Treemap

时间:2013-10-22 08:33:17

标签: java hashmap treemap

我目前正在阅读上一个问题中提到的文本文件中的200万行 Java Fastest way to read through text file with 2 million lines

现在我将这些信息存储到HashMap中,我想通过TreeMap对其进行排序,因为我想使用ceilingkey。以下方法是否正确?

private HashMap<Integer, String> hMap = new HashMap();

private TreeMap<Integer, String> tMap = new TreeMap<Integer, String>(hMap);

3 个答案:

答案 0 :(得分:22)

HashMap<Integer, String> hashMap = new HashMap<Integer, String>();
TreeMap<Integer, String> treeMap = new TreeMap<Integer, String>();
treeMap.putAll(hashMap);

无论如何都应该工作。

答案 1 :(得分:5)

这样可以正常工作:

HashMap<Integer, String> hashMap = new HashMap<>();
TreeMap<Integer, String> treeMap = new TreeMap<>(hashMap);

但我不建议使用HashMap存储输入。您最终得到两个包含相同大数据的地图。可以动态执行,直接添加到TreeMap或使用List转换为TreeMap

另外,为了提高效率,请考虑primitive collections

答案 2 :(得分:1)

HashMap<Integer, String> hashMap = new HashMap<Integer, String>();
TreeMap<Integer, String> treeMap = new TreeMap<Integer, String>();
hashMap.remove(null);
treeMap.putAll(hashMap);

HashMap将允许null但TreeMap在添加到Treemap之前不会这样,从keyset中删除null