Java集合类(二)
浅谈Map集合
Map没有继承Collection接口。也就是说Map和Collection是2种不同的集合。Collection可以看作是(value)的集合,而Map可以看作是(key,value)的集合。
Map接口由Map的内容提供3种类型的集合视图,一组key集合,一组value集合,或者一组key-value映射关系的集合。
public interface Map<K,V>接口的常用方法:
boolean containsKey(Object key) boolean containsValue(Object value) Set<Map.Entry<K,V>> entrySet() 返回此映射中包含的映射关系的Set视图Set<K> keySet() 返回此映射中包含的键的Set视图put(K key, V value) V remove(Object key) Collection<V> values() 返回此映射中包含的值的Collection视图
public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable
Map m = Collections.synchronizedMap(new HashMap(...));
Map m = Collections.synchronizedMap(new HashMap()); ... Set s = m.keySet(); // Needn't be in synchronized block ... synchronized(m) { // Synchronizing on m, not s! Iterator i = s.iterator(); // Must be in synchronized block while (i.hasNext()) foo(i.next());}