集合类

hashmap基于哈希表的map接口实现。查询速度快。线程不安全。

底层:数组+链表

哈希冲突解决:

jdk1.7:位桶+链表

jdk1.8:位桶+链表+红黑树 当链表长度超过阈值(8)时,会将链表转化为红黑树,减少查询时间。

数组长度是不改变的,集合创建后长度是可以改变的。

集合分支体系

Collection      以value形式存储

    list有序可重复 

    arrayList   底层:动态数组  1.5 ///  特点:适合遍历和轮训,不适合插入和删除 ///使用方法:无参 有参///常用方法:add remove get set size indexOf sublist、toArray

    Vector       底层:arrayList的早期版本 扩容默认2倍///特点:线程同步(sync) 、安全性高、效率低

    linkedlist

    stack         底层:继承了vector peek pop push 

   set无序不可重复

    hashset    底层:hashmap  16 0.75  ///通过set集合获取迭代器 ///无重复的原则:默认比较的是地址,用equals方法来比较+hashcode()

Iterator<String> it=set.iterator();

while(it.hasNext()){
String value=it.next;

}

         treeset     底层:treemap 本身有顺序,按自然顺序比,compareTo 

  Queue 

    linkedlist 底层:双向循环链表。同时实现了list和queue接口 修改性能较好

Map   以key-value形式存储

  key无序无重复 value无序可重复

    hashmap    结合了数组加链表的优势。既想要查询效率快,也想要增删效率高。

    Node<K,V> 初始大小:16  扩容:16*0.75   链表长度:8 超过后,  红黑树  jdk1.8 

    hashtable (加sync:效率低)

    concurrentHashMap:并发操作 value值由volatile修饰

    segment :继承reentrantlock    

    treemap    

 

posted @ 2019-07-02 22:08  hhhl  阅读(144)  评论(0编辑  收藏  举报