List集合和Map集合的學習總結

2021-10-02 22:01:23 字數 1377 閱讀 4555

arraylist(高效)陣列 查詢快 增刪慢 執行緒不安全

vector(低效) 陣列 查詢快 增刪慢 執行緒安全

linklist 雙向鍊錶 查詢慢 增刪快 執行緒不安全

1、arraylist、vector查詢快:

arraylist、vector由於底層是陣列實現的,所以查詢快,因為是連續存放元素的,找到第乙個元素的首位址,再加上每個元素的佔據的位元組大小就能定位到對應的元素。

2、vector執行緒安全:

因為vector的方法前加了synchronized 關鍵字。vector是執行緒安全的,而arraylist是高效的

3、linkedlist增刪效率高:

因為linkedlist插入刪除的時候只需要操作引用即可,元素不需要移動,他們分布在記憶體的不用地方,通過引用來互聯起來。而arraylist需要移動元素,故增刪效率低

1、map的底層實現:

雜湊表(陣列+鍊錶的結合)hash table 既滿足了資料的快速查詢(根據關鍵碼值key value 而直接進行訪問的資料結構),也不會占用太多的記憶體空間,十分方便。

2、map集合的遍歷:

public static void main(string args) 

//通過map.entryset遍歷key和value(推薦使用,特別是容量大時)

system.out.println("通過map.entryset遍歷key和value(推薦使用,特別是容量大時)");

set> entries = map.entryset();

for (map.entryentry:entries)

}

3、hashmap和hashtable異同(區別):

1).hashmap

是非執行緒安全的,只是用於單執行緒環境下,多執行緒環境下可以採用concurrent並發包下的concurrenthashmap。hashtable是jdk1.0引入的類,是執行緒安全的,能用於多執行緒環境中。

2).hashmap

物件的key、value值均可為null。hahtable物件的key、value值均不可

為null。

3).hashmap、hashtable都是基於雜湊表實現的,每乙個元素是乙個key-value對,其內部通過單鏈表解決衝突問題,容量不足(超過了閥值)時,同樣會自動增長。

4).hashmap、hashtable都實現了serializable介面,因此它支援序列化,實現了cloneable介面,能被轉殖。

5).且兩者的的key值均不能重複,若新增key相同的鍵值對,後面的value會自動覆蓋前面的value,但不會報錯。

對集合List和Map的遍歷

一 對list的遍歷 list lists new arraylist 1通過foreach for object obj list 2把list轉換為陣列,對陣列遍歷 object obj new object list.size list.toarray obj for迴圈遍歷陣列 3itera...

Map集合與List集合混合使用對比

作為乙個剛開始學程式設計的人來說,下面文字的一些表述肯定會有錯誤,希望前輩們多多批評,或者等以後我自己回過頭來覺得自己當初怎麼這麼菜,那也說明我進步了。嗯,就這樣開始吧!思路一 學校教室的名稱 班級,id和name,分別可以作為map集合裡的鍵和值,也就是分別都有對映關係。這個思路的特點是使用了兩層...

Map集合和Collections集合

1 將鍵對映到值得物件。乙個對映不能包含重複的鍵 每個鍵最多只能對映到乙個值 2 map和collection的區別?map和collection的區別?a map 儲存的是鍵值對形式的元素 鍵唯一,值可以重複 b collection 儲存的是單獨出現的元素 子介面set元素唯一,子介面list元...