双列集合Map及其子类
Map接口是双列集合,它以key-value的方式存在。
特点:键不可以重复,但是值可以重复、无序(存入的顺序与取出来的顺序不同) 没有索引
子类:HashMap,LinkedHashMap,TreeMap
Map集合常用方法:
public V put(K key, V value) : 添加元素。
public V remove(Object key) : 删除指定元素。
public V get(Object key) 根据key获取value
public Set<K> keySet() : 获取Map集合中所有的键,存储到Set集合中。
public Set<Map.Entry<K,V>> entrySet() : 获取到Map集合中所有的键值对对象的集合(Set集合)。 public boolean containsKey(Object key) :判断该集合中是否有此键
HashMap:
数据结构:哈希表
特点:键不可以重复,但是值可以重复、无序(存入的顺序与取出来的顺序不同) 没有索引。
是如何保证键唯一的:键需要重写HashCode和equals 判断过程和HashSet一样。
LinkedHashMap:
数据结构:双链表(哈希表+链表)
特点:键不可以重复,但是值可以重复、有序(存入的顺序与取出来的顺序相同) 没有索引。
是如何保证键唯一的:键需要重写HashCode和equals 判断过程和HashSet一样
TreeMap:
数据结构:红黑树
特点:键不可以重复,但是值可以重复,可以按照自然顺序给key排序。
构造:
空参:可以按照自然顺序给key排序。
带参:可以根据传入指定的Compartor进行设置排序规则。
是如何保证键唯一的:键需要重写HashCode和equals 判断过程和HashSet一样