和在 Java 中HashMap有什么区别?我没有看到输出有任何区别,因为这三个都有和。什么是s?LinkedHashMap``TreeMap``keySet``values``Hashtable
HashMap
LinkedHashMap``TreeMap``keySet``values``Hashtable
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接口并提供了几乎相同的功能。最重要的区别是条目迭代发生的顺序:
Map
TreeMap``compareTo()
Comparator
SortedMap
LinkedHashMap
“哈希表”是基于哈希的映射的通用名称。在 Java API 的上下文中, Hashtable是在集合框架存在之前的 Java 1.1 时代已经过时的类。不应再使用它,因为它的 API 中充斥着重复功能的过时方法,并且它的方法是同步的(这会降低性能并且通常是无用的)。使用ConcurrentHashMap而不是 Hashtable。
Hashtable