Map集合

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。

1.2     LinkedHashMap实现类

1.3     使用Properties读写属性文件

1.4     SortedMap接口和TreeMap实现类

1.5     WeakHashMap实现类

1.6     IdentityHashMap实现类

1.7     EnumMap实现类

原文地址:https://www.cnblogs.com/haiwei_sun/p/3393462.html