Java HashMap,LinkedHashMap和TreeMap之间的区别
是什么区别HashMap
,LinkedHashMap
而TreeMap
在Java
中?我没有看到输出的任何差异,因为这三个都有keySet
和values
。什么是Hashtables
?
Map m1 = new HashMap();m1.put("map", "HashMap");
m1.put("schildt", "java2");
m1.put("mathew", "Hyden");
m1.put("schildt", "java2s");
print(m1.keySet());
print(m1.values());
SortedMap sm = new TreeMap();
sm.put("map", "TreeMap");
sm.put("schildt", "java2");
sm.put("mathew", "Hyden");
sm.put("schildt", "java2s");
print(sm.keySet());
print(sm.values());
LinkedHashMap lm = new LinkedHashMap();
lm.put("map", "LinkedHashMap");
lm.put("schildt", "java2");
lm.put("mathew", "Hyden");
lm.put("schildt", "java2s");
print(lm.keySet());
print(lm.values());
回答:
这三个类都实现了该Map
接口,并提供了几乎相同的功能。最重要的区别是通过条目进行迭代的顺序:
HashMap
绝对不保证迭代顺序。添加新元素时,它甚至可以(并将)完全改变。TreeMap
将根据密钥的“自然顺序”(根据其compareTo()
方法)(或外部提供的Comparator
)进行迭代。此外,它实现了SortedMap接口,该接口包含依赖于此排序顺序的方法。LinkedHashMap
将按照条目放入地图的顺序进行迭代“哈希表”是基于哈希的映射的通用名称。在Java API的上下文中,
Hashtable
是从Java 1.1到集合框架存在之前的过时的类。不再使用它,因为它的API充满了重复功能的过时方法,并且其方法是同步的(这会降低性能,并且通常是无用的)。使用ConcurrentHashMap
而不是Hashtable
。
以上是 Java HashMap,LinkedHashMap和TreeMap之间的区别 的全部内容, 来源链接: utcz.com/qa/409223.html