Map集合的特点:
将键映射到值的对象,一个映射不能包含重复的键;每个键最多只能映射到一个值.
Map集合和Collection集合的区别?
Map集合存储元素是成对出现的,Map集合的键是唯一的,值是可重复的,可以把这个理解为:夫妻对
Collection集合存储元素是单独出现的,Collection的儿子Set是唯一的,List是可重复的
Map集合的功能概述:
- 添加功能
V put(K key,V value) 添加元素
//如果键是第一次存储,就直接存储元素,返回null;如果键不是第一次存在,就用值把以前的值替换,返回以前的值
- 删除功能
void clear() 移除所有的键值对元素
V remove(Object key) 根据键删除键值对元素,并把值返回
- 判断功能
boolean containsKey(Object key) 判断集合是否包含指定的键
boolean containsValue(Object value) 判断集合是否包含指定的值
boolean isEmpty() 判断集合是否为空
- 获取功能
Set<Map.Entry<K,V>> entrySet() 返回的是键值对对象的集合
V get(Object key) 根据键获取值
Set<K> keySet() 获取集合中所有键的集合
Collection<V> values() 获取集合中所有值的集合
- 长度功能
int size()
子类
HashMap
- 基于哈希表的Map接口实现,哈希表的作用是用来保证键的唯一性的
LinkedHashMap
- 是Map接口的哈希表和链接列表实现,唯一且有序
TreeMap
- 键是红黑树结构,可以保证键的排序和唯一性
问:HashMap和Hashtable的区别?
- Hashtable:线程安全,效率低,不允许null键和null值
- HashMap:线程不安全,效率高,允许null键和null值
问:List,Set,Map等接口是否都继承自Map接口?
- List,Set不是继承自Map接口,它们继承自Collection接口
- Map接口本身就是一个顶层接口