乙個是以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...