我目前正在阅读上一个问题中提到的文本文件中的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);
答案 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