概述
java.util.Map接口,即 称为双列集合,以 key-value(键-值) 存储的集合。组成map的每个元素都有一个 键 和一个 值,可以通过键找到对应的值
见下面的两张身份证图片,观察区别,哪个身份证更加易于理解
“姓名”、“性别”就是key,与之对应的具体内容就是value
注意:Map中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。
继承关系
Map (没有实现collection接口,key不能重复,value可以重复,一个key映射一个value)
├ Hashtable (实现Map接口,同步,不允许null作为key和value)
│ └ Properties(继承Hashtable)
└ HashMap (实现Map接口,非同步,允许null作为key和value,用的多,无序)
└ LinkedHashMap(有序)
HashMap<K,V>:存储数据采用的 哈希表 结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。LinkedHashMap<K,V>:存储数据采用的哈希表结构+链表结构。通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。
Map接口中的集合都有两个泛型变量<K,V>,在使用时,要为两个泛型变量赋予数据类型。两个泛型变量<K,V>的数据类型可以相同,也可以不同。
常用方法
public V put(K key, V value): 把指定的键与指定的值添加到Map集合中。public V remove(Object key): 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的值。public V get(Object key)根据指定的键,在Map集合中获取对应的值。boolean containsKey(Object key)判断集合中是否包含指定的键。public Set<K> keySet(): 获取Map集合中所有的键,存储到Set集合中。public Set<Map.Entry<K,V>> entrySet(): 获取到Map集合中所有的键值对对象的集合(Set集合)。

