Java将Hashmap放入树映射
如前一个问题所述,我目前正在从一个文本文件中阅读200万行 现在我将这些信息存储到HashMap中,我想通过TreeMap对其进行排序,因为我想使用ceilingkey。以下方法正确吗Java将Hashmap放入树映射,java,hashmap,treemap,Java,Hashmap,Treemap,如前一个问题所述,我目前正在从一个文本文件中阅读200万行 现在我将这些信息存储到HashMap中,我想通过TreeMap对其进行排序,因为我想使用ceilingkey。以下方法正确吗 private HashMap<Integer, String> hMap = new HashMap(); private TreeMap<Integer, String> tMap = new TreeMap<Integer, String>(hMap); priva
private HashMap<Integer, String> hMap = new HashMap();
private TreeMap<Integer, String> tMap = new TreeMap<Integer, String>(hMap);
private HashMap hMap=new HashMap();
私有树映射tMap=新树映射(hMap);
HashMap HashMap=newhashmap();
TreeMap TreeMap=新的TreeMap();
树映射putAll(hashMap);
无论如何都应该有效。这样就可以了:
HashMap<Integer, String> hashMap = new HashMap<>();
TreeMap<Integer, String> treeMap = new TreeMap<>(hashMap);
HashMap HashMap=newhashmap();
TreeMap TreeMap=新的TreeMap(hashMap);
但是我不建议使用HashMap
来存储输入。你最终会看到两张地图上都有相同的巨大数据。可以在运行中直接添加到TreeMap
中,也可以使用List
到TreeMap
转换
此外,考虑到效率更高。
<代码> HASMAP HASMAP =新HASMAP(); TreeMap TreeMap=新的TreeMap(); 移除(null); 树映射putAll(hashMap);HashMap将允许null,但TreeMap不允许。在添加到TreeMap之前,请从键集
集合中删除null。排序(hMap)
Collections.sort(hMap,带有我自己的比较器)
?为什么不直接将其放入树状图中呢?为什么需要额外的步骤?hrm…我仍然喜欢用treemap进行排序,但在我的代码中,treemap是empty@suresh附件:Collections.sort(hMap)
不起作用,sort()
只处理列表你是在开玩笑吧<代码>putAll()
:)。签出源代码链接,我added@user2822351我不是说这个答案是错的,我是说这个答案等于你现在正在做的事情。它是正确的,但是构造函数的用法更优雅。@user2822351问题是。。。这与您在上面问题中发布的内容有什么不同吗!?@Akkusativobjekt,我正在使用构造函数,但它不起作用。当我尝试打印时,树映射是空的
HashMap<Integer, String> hashMap = new HashMap<>();
TreeMap<Integer, String> treeMap = new TreeMap<>(hashMap);
HashMap<Integer, String> hashMap = new HashMap<Integer, String>();
TreeMap<Integer, String> treeMap = new TreeMap<Integer, String>();
hashMap.remove(null);
treeMap.putAll(hashMap);