Map集合-双列集合
MAP的泛型<K,V>
java.util.Map<k,v>集合
Map集合特点:
- Map集合是双列集合,一个元素包含2个值(一个key,一个value)
- Map集合中的元素,key和value的数据类型可以相同也可以不同
- Map集合中的元素,key是不可以重复的,value是可以重复的
- Map集合中的元素,key和value是一一对应的
Map常用实现类(子类):
java.util.HashMap<k,v>集合 implements Map<k,v>接口
HashMap:HashSet就是new了HashMap的接口,用了元素中的key,所以是唯一的,没有重复元素
LinkedHashMap:Map接口的哈希表和链表列表实现,具有可预知的迭代顺序
HashMap集合的特点:
-
HashMap集合底层是哈希表:查询的速度特别快
在JDK1.8之前:数组+单向链表
在JDK1.8之后:数组+单向链表/红黑树(链表的长度超过8):提高查询的速度
-
HashMap集合是一个无序的集合,存储元素和取出元素的顺序可能不一致
java.util.LinkedHashMap<k,v>集合 extends HashMap<k,v>集合
LinkedHashMap的特点:
- LinkedHashMap集合底层是哈希表+链表(保证迭代的顺序)
- LinkedHashMap集合是一个有序的集合,存储元素和取出元素的顺序是一致的
Map的常用方法:
- public V put(K key, V value):把指定的键和指定的值添加到Map集合中,key不允许重复,value可以重复,如果value重复,put时会将上一次值覆盖,如果用参数接收返回的是被替换的值
- public V remove(Object key):把指定的键 所对应的键值对元素 在Map集合中删除,返回被删元素的值(注意:返回类型尽量用包装类,如果用基本类型可能会抛出空指针异常)
- public V get(Object key):根据指定的键,在Map集合中获取对应的值
- boolean containsKey(Object key):判断集合中是否包含指定的键
- keySet遍历集合
- entrySet遍历集合