Collection就是单身汉(单列集合),Map就是结了婚的夫妻(双列集合),证书就是k、v值的关系
Map集合特点:
该集合存储键值对,一对一对往里存,而且要保证健的唯一性
1添加
put
(K key,V value) //
在添加元素的时候,相同的键,那么后添加的值会覆盖原有的键对应得值,并
put
方法会返回被覆盖的值
putAll
(Map<? extendsK,? extends V> m)
2删除
clear();
3判断
containsKey
(Object key)
containsValue
(Object value)
isEmpty
()
4获取
size
()
values
()
entrySet
()
keySet
()
Map
集合有三个小弟(哈希表是无序存储)
|--Hashtable
:底层是哈希表数据结构,不可以存入null健null值,线程同步。JDK1.0,效率低
|--HashMap
:哈希表数据结构,可以存入null健null值,线程不同步(面试有可能问上边俩区别)
JDK1.2.
效率高
|--TreeMap
:底层是二叉数据结构,线程不同步,可以用于给map集合中的键进行排序
和set很像,其实set底层就是使用了Map集合,Map能存一对,去掉一个就行了
Map集合中的两种取出方式:(get
(Object key)
方法)只能通过一个k值获取v值,想要获取全部的v值怎么办?
1 Set<> keySet:将map中所有的键存入到set集合中,因为set具备迭代器,所以可以通过迭代方式取出所有的键,然后通过get()获取每一个键对应的值。
Map集合取出的原理,将map集合转成set集合,在通过迭代器取出。
2第二种取出方式,Set<Map.Entry<k,v>> entrySet : 将map集合中的映射关系存入到了set集合中,而这个关系的数据类型就是Map.Entry