JAVA【Map集合】详解:
Map集合概述和使用
- Map集合是一种双列集合,每个元素包含两个数据。
- Map集合的每个元素的格式: key=value(键值对元素)。
- Map集合也被称为“键值对集合”。
Map集合体系
详细信息
JDK7 HashMap如何实现
Java7 HashMap采用的是冲突链表方式。
JDK8 HashMap如何实现
Java7 HashMap查找的时候,根据 hash 值能够快速定位到数组的具体下标,之后需要顺着链表一个个比较下去才能找到目标,时间复杂度取决于链表的长度,为 O(n)。
为了降低这部分的开销,在 Java8 中,当链表中的元素达到了 8 个时,会将链表转换为红黑树,在这些位置进行查找的时候可以降低时间复杂度为 O(logN)。
Map集合体系特点
Map集合实现类特点
Map API
HashSet是如何实现的
HashSet是对HashMap的简单包装,对HashSet的函数调用都会转换成合适的HashMap方法
//HashSet是对HashMap的简单包装
public class HashSet<E>
{
......
private transient HashMap<E,Object> map;//HashSet里面有一个HashMap
// Dummy value to associate with an Object in the backing Map
private static final Object PRESENT = new Object();
public HashSet() {
map = new HashMap<>();
}
......
public boolean add(E e) {//简单的方法转换
return map.put(e, PRESENT)==null;
}
......
}