一,Map集合:该机和储存键值对,一对一对往里存,而且保证键的唯一性。
1.添加
添加元素,如果出现添加时,相同的键。那么后添加的值回覆盖原有键对应值。
并put方法回返回被覆盖的值
put(K key,V value)
putAll(Map<? extends K ,?extends V>m)
2.删除
clear()
remove(object key)
3.判断
containsValue(Object value)
containsKey(Object key)
isEmpty()
4.获取
可以通过get方法的返回值来判断一个键是否存在。同伙返回null来判断。
get(Object key)
size()
获取集合中的所有值。
values()
二,Map常用方法:
|----Hashtable:底层是哈希表数据结构,不可以存入null键null值。该集合是线程同步的。jdk1.0.效率低。
|----HashMap:底层是哈希表数据结构,允许使用null键null值。该集合是不同步的。djk1.2效率高。
|----TreeMap:底层是二叉树数据结构,县城不同步。可以用于给Map集合中的键进行排序。
其实map和set很像,Set底层就是使用了Map集合。
三,map集合的两种取出方式:
1.返回的是Set<K> keySet:将map中所有的键存入到Set集合,因为set具备迭代器。所以可以通过迭代方式取出所有的键,再根据get方法,获取每一个键对应的值。
Map集合的取出原理:将map集合转成set集合,在通过迭代器取出,
实例:
输出结果:
图像理解:
2,返回值类型Set<Map、Entry<K ,V>> entrySet:将map集合中的映射关系存入到了set集合中,而这两个关系的数据类型就是:Map,Entry
实例:
打印结果:
图像理解:
关于Map.Entry的解惑
Map.Entry 其中Entry也是一个接口。他是Map接口中的一个内部接口。