Java集合類詳解

2021-08-09 19:20:02 字數 958 閱讀 4398

陣列:只能存放基本資料型別,長度固定,不適合在資料未定的情況下使用

集合:存放物件,長度可變,功能強大

jdk 中  主要的集合類分為兩種 :collection 和  map

集合類框架圖如下:

主要分為  collection和map兩大類

collection介面是集合類中的一種基類,jdk中並沒有它的實現類,而是set,list,queue介面繼承他然後其他的類實現

是set 介面:它存放的資料 無序不重複,其中的元素不按順序列,只是集中在一起

list介面: 它存放的資料 有序可重複,與索引有關,每個元與之對應的索引(下標),所以查詢速度快,刪除,插入時會伴隨著資料的移動,故效率低

queue介面:這個介面在工作中運用的很少,表示佇列,是一種特殊的線性表,只能在前端刪除 ,末端加入,像排隊樣不能插隊;又稱為先進先出線性表

arraylist,vector, linkedlist區別:

相同點:

arraylist,vector,linkedlist  都是以陣列儲存方式儲存,每個元素都有對應的下標

不同點:

arraylist:執行緒非同步,所以執行緒不安全,裡面的資料查詢效率高,刪除插入效率慢

vector:執行緒同步,所以執行緒安全,裡面的資料查詢效率高,刪除插入效率慢,vector的增長率是當前集合長度的100%,arraylist增長率是當前集合的50%,當帶資料量大時

vector有優勢

linkedlist:linkedlist實現了list介面和queue介面,是用雙向鍊錶的形式儲存資料的,遍歷時需要前後雙向,所以插敘比較慢,刪除插入時,只需記錄前後項即可,效率高

hashset,linkedhashset,treeset的區別:

hashset:它存放的資料 有序可重複

linkedhashset:按順序插入排序,速度慢,與hashset的區別是裡面加入了雙向鍊錶

treeset

Java 集合類詳解

上述類圖中,實線邊框的是實現類,比如arraylist,linkedlist,hashmap等,折線邊框的是抽象類,比如abstractcollection,abstractlist,abstractmap等,而點線邊框的是介面,比如collection,iterator,list等。發現乙個特點,...

java常用集合類詳解

set set是基於map實現的,可以看作只有key,value為null的map,資料結構雜湊 hashset hashmap,雜湊表,陣列 單向鍊錶,效能居中 treeset 二叉樹 紅黑樹,利用treemap list 基於鍊錶和陣列 arraylist 陣列,改查快,增刪不易 private...

java集合詳解

1 vector arraylist都是以類似陣列的形式儲存在記憶體中,linkedlist則以鍊錶的形式進行儲存。2 list中的元素有序 允許有重複的元素,set中的元素無序 不允許有重複元素。3 vector執行緒同步,arraylist linkedlist執行緒不同步。4 linkedli...