15

我目前正在从文本文件中读取 200 万行,如上一个问题 Java Fastest way to read through text file with 200 万行中所问

现在我将这些信息存储到 HashMap 中,我想通过 TreeMap 对其进行排序,因为我想使用天花板键。下面的方法正确吗?

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

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

3 回答 3

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

无论如何应该工作。

于 2013-10-22T08:37:04.203 回答
5

这会很好用:

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

但我不建议使用HashMap来存储输入。您最终会得到两个拥有相同庞大数据的地图。要么即时执行并直接添加到转换中,TreeMap要么List用于TreeMap转换。

此外,为了提高效率,请考虑原始集合

于 2016-06-07T09:55:09.250 回答
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 之前不允许,从键集中删除 null

于 2016-09-06T07:42:53.223 回答