JDK中集合類

數據結構:是數據存儲時各個元素之間的關係。數組

分4種基本類型:集合、線性結構、樹形結構、圖狀結構;安全

JDK中的集合類:List、Set、Queue、Stack、Map數據結構

基本特色多線程

一、List/Set/Queue都繼承Collection接口,Map是單獨的接口線程

二、List存儲類型一致數據能夠保證存儲的順序,但不保證元素是否重複;code

Set存儲類型一致的數據,不保證數據的存儲順序,但保證存儲的元素惟一;對象

Queue保證數據先進先出的順序;排序

Map存儲key-value類型的數據,key不重複(若重複會覆蓋原key對應的value值).繼承

 

實現類接口

ArrayList:實現List接口,是動態數組實現的順序表。數組實現,訪問速度快,佔用空間小,不適合頻繁的增刪節點。

Vector:實現List接口,動態數組實現,元素有序,線程同步的

LinkedList:實現List接口,是基於鏈表實現的順序表。鏈表實現,適合長度不固定、元素增刪頻繁時使用。

HashSet:存儲元素可自動去重複,無序訪問,存儲對象必須實現hashcode()方法(這就是爲何不能存儲基本數據類型)

TreeSet:可對元素去重,保證元素的插入順序,可對元素排序(保存的元素須要實現Comparable接口,重寫compareTo方法)

HashMap:實現Map接口,是由數組+鏈表實現的(依據key的hash值決定在數組上的存儲位置,若hash衝突時保存到鏈表子節點上)

WeakHashMap:繼承AbstarctMap,實現Map接口;key對象弱引用

LinkedHashMap:繼承HashMap,會保存數據的插入順序

ConcurrentHashMap:實現Map接口,自帶同步鎖(線程安全,在多線程狀況下能夠使用)

HashTable:線程安全的map

TreeMap:繼承AbstarctMap,實現Map接口;能夠key值自動排序

Stack(棧):繼承Vector;元素後進先出(有入棧和出棧操做);線程安全

Queue(隊列):繼承List接口;可進行出隊、入隊操做(LinkedList也能夠實現)

ConcurrentLinkedQueue

SynchronizedQueue

BlockingQueue:阻塞隊列,繼承Queue;線程安全(可執行先進先出或後進先出操做);

子類還有ArrayBlockingQueue、LinkedBlockingQueue、DelayQueue、PriorityBlockingQueue、

SynchronousQueue

BlockingDeque:雙端阻塞隊列,繼承BlockingQueue;

實現類有LinkedBlockingDeque

TransferQueue:繼承BlockingQueue;

實現類有LinkedTransferQueue

相關文章
相關標籤/搜索