Map集合的特点:以键值对的形式存储,键不能重复,如果添加相同的键会进行覆盖。
Hashtable 线程安全,效率低不允许key或value为null。
HashMap 底层实现采用了Hash表,Hash的本质就是数组加链表 线程不安全。允许key或value为null。
当添加一个元素,首先计算key的hash值,以此确定插入数组中的位置,但可能存在同一hash值的元素已经
被放在数组相同一位置了,这时就添加到同一Hash值的元素后面,他们在数组的同一位置,就形成了链表
,同一个链表上的Hash值是相同的,所有数组存放的数链表。
JDK8中,当链表长度大于8时,链表就转换为红黑树,这样大大提高了查找效率
TreeMap hashMap效率高与TreeMap,在需要排序的Map时才选用TreeMap.采用了红黑二叉树实现的。
通过comparable中的compareTo排序。