java集合框架結構


1、總體結構


 

 

 

 

 Map和Collection是分開的。Collection下有List Queue Set 3個接口。

 

2、List結構


 

 

3、Set結構


 

 

 

 

4、Queue結構


 

 

 

5、Map結構


 

 

 

6、Deque結構


 

 

 

7、常用的List


ArrayList: 數組實現,初始長度10,每次擴容增加0.5倍(0.5倍可以通過位移>>1操作完成);

                最大長度Integer.MAX_VALUE , 並非Integer.MAX_VALUE - 8;

LinkedList:雙向鏈表實現, 可用於棧 隊列實現。

 

線程安全:

Collections.synchronizedList(list)實現,

Vector也是線程安全的(過時 不建議使用)

CopyOnwriteArrayList

 
        

 

8、常用的Set


HashSet:以HashMap實現的,只能存一個null值

LinkedHashSet:繼承HashSet 可以按存入的順序進行迭代。

TreeSet:以TreeMap實現 內部按compareTo進行比較 所有不能存null,否則空指針異常。

ConcurrentHashSet(google guava實現)

 

9、常用的Queue


PriorityQueue : 非FIFO隊列 按優先級排序

 

線程安全:

ArrayBlockingQueue:數組實現 阻塞隊列 需要指明初始大小,線程安全

LinkedBlockingQueue:列表實現 阻塞隊列,可以不指明初始大小,默認Integer.MAX_VALUE;線程安全

ConcurrentLinkedQueue:鏈表實現 不阻塞 長度無限制;線程安全

PriorityBlockingQueue : 優先級隊列 線程安全版本

 

10、常用的Deque (雙向隊列 可當做棧使用,深度遍歷算法時可以使用)


ArrayDeque:動態數組 長度是2的冪次方;作為棧時性能比LinkedList好;非線程安全

LinkedList:雙向鏈表實現 ,非線程安全

 

線程安全:

ConcurrentLinkedDeque:鏈表實現

LinkedBlockingDeque:阻塞鏈表

棧的實現還有一個Stack類,繼承Vector,線程安全(過時了 不建議使用) 

 

11、常用的Map


HashMap:只能存放一個null key

TreeMap: 不能存放null key

 

線程安全:

ConcurrentHashMap:線程安全

 

 


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM