1 Map集合
public interface Map<K,V>
Map用于保存具有映射关系的数据,因此Map集合里保存着两组值,一组值用于保存Map里的key,另外一组用于保存Map里的value,key和value都可以是任何引用类型的数据。
Map的key不允许有重复,即同一个Map对象的任何两个key通过equals方法比较总是返回false。
Map接口常用方法:
n void clear():从此映射中移除所有映射关系(可选操作)。
n boolean containsKey(Object key):如果此映射包含指定键的映射关系,则返回 true。
n boolean containsValue(Object value):如果此映射将一个或多个键映射到指定值,则返回 true。
n Set<Map.Entry<K,V>> entrySet():返回此映射中包含的映射关系的 Set
视图。
n boolean equals(Object o):比较指定的对象与此映射是否相等。
n V get(Object key):返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null
。
n int hashCode():返回此映射的哈希码值。
n boolean isEmpty():如果此映射未包含键-值映射关系,则返回 true。
n Set<K> keySet():返回此映射中包含的键的 Set
视图。
n V put(K key, V value):将指定的值与此映射中的指定键关联(可选操作)。
n void putAll(Map<? extends K,? extends V> m):从指定映射中将所有映射关系复制到此映射中(可选操作)。
n V remove(Object key):如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。
n int size():返回此映射中的键-值映射关系数。
n Collection<V> values():返回此映射中包含的值的 Collection
视图。
Map中包括一个内部类Entry,该类封装了一个key-value对。Entry包含如下三个方法:
n Object getKey():返回该Entry里包含的key值
n Object getValue():返回该Entry里包含的value值
n Object setValue(V value):设置该Entry里包含的value值,并返回新设置的value值。
1.1 HashMap和Hashtable实现类
HashMap和Hashtable都是Map接口的实现类,它们之间的关系完全类似于ArrayList和Vector的关系:
Hashtable和HashMap区别:
1:Hashtable是线程安全的Map实现。但HashMap是线程不安全的实现。所以HashMap比Hashtable的性能高一点;但如果多个线程访问同一个Map对象时,使用Hashtable实现类会更好。
2:Hashtable不允许使用null作为key和value,如果试图把null值放进Hashtable中,将会引发NullPointerException异常;但HashMap可以使用null作为key和value。