JAVA集合體系整理彙總

2021-08-18 13:34:01 字數 1967 閱讀 5427

乙個是以map介面為延伸 

乙個是以collection介面延伸

1.1:map介面向下延伸,又分為兩大類

一:hashmap(底層鍵值對:key:value)(執行緒不安全,同理效率高)(無序的)

二:hashtable(底層鍵值對:key:value)(執行緒安全,同理效率低)(

無序的)

三:treemap(底層鍵值對:key:value)(執行緒不安全,同理效率高)(

有序的)

鍵值對 key不可以重複,value可以重複;

為什麼key不可以重複?因為在put存的時候它會存乙份這個key的hashcode值,然後進行比較,不相同就存,相同就不存:

publicv put(k key, v value)
hashmap(無序的):

treemap(有序的):使用二叉排序樹,插入方法如下,使用二分法插入到應該它在的位置去。需要key一定要有比較的方法,要麼插入comparator比較器,要麼key物件實現comparator介面;

dowhile(t !=null);

hashmap和hashtable的區別:hashmap執行緒不安全,hashtable執行緒安全,同理效率高低,hashmap的value允許為null,hashtable的key和value都不允許為null;

1.2:collection介面向下延伸,又分為兩大類

一:list

1:arraylist(底層陣列)(執行緒不安全,同理效率高)

2:vector(底層陣列)(執行緒安全,和arraylist差不多,方法前多了個synchronize關鍵字)

3:linkedlist(底層鍊錶)(執行緒不安全,同理效率高)

list集合都是有序的,為什麼有序?因為陣列有下標(index),鍊錶有前標後標(next,prev);

list集合都是允許重複的;

arraylist和linkedlist的比較:

1.arraylist查詢快,增上慢(因為底層是陣列,查詢根據下標就可以了,增刪的話如下:需要cope陣列,如下arraylist刪除方法)

publice remove(intindex)

1.linkedlist查詢慢,增刪快(因為底層是鍊錶,鍊錶查詢需要前面查後面,個人見解是往後增加快,批量刪除應該會比arraylist快點,set方法應該不怎麼快,也是進行查詢後在進行修改,刪除操作是查詢當前鏈塊兒的前面的值和後面的值,然後把前面的修改後指向後方,後面的修改為指向前方,也不知說的對不對,沒試驗過,刪除操作具體如下:)

finale element = x.item;

finalnode next = x.next;

finalnode prev = x.prev;

if(prev ==null)else

if(next ==null)else

二:set

1:hashset(

底層hashmap

)(執行緒不安全

,同理效率高

)2:treeset(底層treemap)(執行緒不安全

,同理效率高

)set集合都是不允許重複的,因為底層是hashmap,add方法新增的時候實際上是map新增的乙個key:

public booleanadd(e e)

Map 集合體系

map 集合體系 1 特點 map是map集合體系的根介面 1 鍵值對儲存 key value 乙個鍵值對對應map集合中的乙個元素 2 鍵 無序 無下標元素不允許重複 3 值 無序無下標 元素允許重複 常用方法 1 put k key,v value 往map集合中新增乙個鍵值對,如果map沒有存...

Java 之 集合體系(二 List)

資料可重複,不排序,執行緒不安全 下面這個例子是將集合中的重複元素去掉 a 案例演示 需求 arraylist去除集合中字串的重複值 字串的內容相同 思路 建立新集合方式 public static void main string args 去除重複 1,返回arraylist 2,引數列表arr...

java基礎重要知識 集合體系

集合體系 一.單列集合 collection collection 以單個元素形式儲存 list集合 有序,有索引,可重複 arraylist 陣列結構,查詢快,增刪慢 增加 add e e 將指定的元素追加到此列表的末尾 刪除 remove int index 刪除該集合中指定位置的元素 remo...