JAVA 中常用的幾個集合類

2021-05-27 08:07:11 字數 1254 閱讀 9570

1. arraylist

基於陣列方式實現,無容量的限制。

在執行插入元素時可能要擴容,在刪除元素時並不會減少陣列的容量。

如果希望相應的縮小陣列容量,可以呼叫trimtosize()

在查詢元素時要遍歷陣列,對於非null的元素採取equals的方式尋找。

非執行緒安全。

2. linkedlist

基於雙向鍊錶機制實現。

元素的插入、移動較快。

非執行緒安全。

3. vector

基於object陣列的方式來實現的。

基於synchronized實現的執行緒安全的arraylist。

在插入元素時容量擴充的機制和arraylist稍有不同:

如果capcacityincrement > 0, 則object陣列的大小擴大為現有size加上capcacityincrement;

如果capcacityincrement < 0, 則object陣列的大小擴大為現有size的兩倍;

4. stack

基於vector實現,支援lifo。

5. hashset

基於hashmap實現,無容量限制。

不允許元素重複。

非執行緒安全。

6. treeset

基於treemap實現,支援排序。

非執行緒安全。

7. hashmap

採用陣列方式儲存key、value構成的entry物件,無容量限制。

基於key hash尋找entry物件存放到陣列的位置,對於hash衝突採用鍊錶的方式來解決。

在插入元素時可能會擴大陣列的容量,在擴大容量時會重新計算hash,並複製物件到新的陣列中。

非執行緒安全。

8. treemap

基於紅黑樹實現,無容量限制。

非執行緒安全。

適用場景:

對於查詢和刪除較為頻繁,且元素數量較多的應用,set或map是更好的選擇;

arraylist適用於通過為位置來讀取元素的場景;

linkedlist 適用於要頭尾操作或插入指定位置的場景;

vector 適用於要執行緒安全的arraylist的場景;

stack 適用於執行緒安全的lifo場景;

hashset 適用於對排序沒有要求的非重複元素的存放;

treeset 適用於要排序的非重複元素的存放;

hashmap 適用於大部分key-value的訪問場景;

treemap 適用於需排序存放的key-value場景。

Java集合中常用的介面和類

上圖是集合框架中常用的類和介面 一 用得最多的主要有set,list,map,iterator這幾個介面,set和list介面都是collection介面的子介面,有很多相同的地方,我們只要撐握了collection介面的方法及set和list的用法也就差不多了.set和list 的區別 1 set...

java中常用的幾種集合型別

集合就像陣列一樣,用來存放東西 常用的集合分為list 有序排放 map 以名和值一一對應的存放 set 既無序也沒名 在這三者之中其中list和set是collection介面的子介面,而map不是collection介面的子介面 首先介紹的是集合 一 list 為了學習list,這裡介紹list...

對Java中常用集合的操作

集合 1 由來 物件導向語言會產生很多物件,為了對這些物件進行儲存,操作,就產生了集合。集合存放的是物件的位址,操作的物件是物件。他是可變長度的。物件用於封裝特有資料,物件多了需要儲存,如果物件的個數不定,則使用集合進行儲存。2.特點 1.集合是用於儲存物件的容器 2.集合的長度是可變的。3.集合中...