Java将Hashmap放入Treemap

Bey*_*mer 12 java hashmap treemap

我正在阅读文本文件中的200万行,如上一个问题中提到的 Java最快的方式来阅读200万行的文本文件

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

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

private TreeMap<Integer, String> tMap = new TreeMap<Integer, String>(hMap);
Run Code Online (Sandbox Code Playgroud)

Akk*_*ekt 27

HashMap<Integer, String> hashMap = new HashMap<Integer, String>();
TreeMap<Integer, String> treeMap = new TreeMap<Integer, String>();
treeMap.putAll(hashMap);
Run Code Online (Sandbox Code Playgroud)

无论如何应该工作.

  • 开玩笑吧?[传递构造函数也调用](http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/TreeMap.java#TreeMap.%3Cinit%3E% 28java.util.Map%29)`putAll()`:).检查了源代码链接,我补充说 (3认同)
  • 这是正确的,但构造函数的使用更加优雅. (2认同)

hus*_*ayt 5

这样可以正常工作:

HashMap<Integer, String> hashMap = new HashMap<>();
TreeMap<Integer, String> treeMap = new TreeMap<>(hashMap);
Run Code Online (Sandbox Code Playgroud)

但我不建议使用HashMap存储输入.您最终得到两个包含相同大数据的地图.无论是做对飞,并直接加入到TreeMap或使用ListTreeMap转换.

此外,为了更高效率,考虑原始集合.