一. Map接口
a. 概述及特点
i. Collection集合称为单列集合,Map集合称为双列集合。
ii. 重点: Map中为了保证键的唯一性,如果键是自定义类型,必须重写键的hashCode和equals方法
b. Map的常用实现类
i. HashMap:底层采用哈希表结构,无序
ii. LinkedHashMap底层采用链表+哈希表结构(存取一致)
iii. TreeMap底层采用红黑树结构(键有自然顺序)
c. Map的常用方法【重点】
i. public V put(K key, V value) : 把指定的键与指定的值添加到Map集合中。
public V remove(Object key) : 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的值。
public V get(Object key) 根据指定的键,在Map集合中获取对应的值。
public Set<K> keySet() : 获取Map集合中所有的键,存储到Set集合中。
public Set<Map.Entry<K,V>> entrySet() : 获取到Map集合中所有的键值对对象的集合(Set集合)。
public boolean containsKey(Object key) : 判断该集合中是否有此键。
d. Map的遍历【重点】
i. 键找值方式
1) 获取Map中所有的键,由于键是唯一的,所以返回一个Set集合存储所有的键。方法提示: keyset()
2) 遍历键的Set集合,得到每一个键。
3) 根据键,获取键所对应的值。方法提示: get(K key)
ii. 键值对方式
1) public Set<Map.Entry<K,V>> entrySet() : 获取到Map集合中所有的键值对对象的集合(Set集合)。
获取了Entry对象 , 表示获取了一对键和值,那么同样Entry中 , 分别提供了获取键和获取值的方法:
2) public K getKey() :获取Entry对象中的键。
3) public V getValue() :获取Entry对象中的值
e. HashMap存储自定义类型
i. 存自定义类型时,要保证元素不重复,子类中要重写hashCode和equals方法
f. LinkedHashMap介绍
i. 它是链表和哈希表组合的一个数据存储结构。有序(添加的顺序)。
g. TreeMap集合
i. 无序(但是,打印时会按照键的自然顺序升序排序)
ii. 数值类型,按照键值升序排序;字符类型,按照码值升序;字符串类型,按照键的首字母升序排序,如果相同按照次字母…
Map集合练习