collection
|--list:元素是有序的,元素可以重複。因為該集合體系有索引。
|--arraylist:底層的資料結構使用的是陣列結構。
特點:查詢速度很快。但是增刪稍慢。執行緒不同步。
|--linkedlist:底層使用的鍊錶資料結構。
特點:增刪速度很快,查詢稍慢。執行緒不同步。
|--vector:底層是陣列資料結構。
特點:執行緒同步。被arraylist替代了。因為效率低。
|--set:元素是無序,元素不可以重複。
|--hashset:底層資料結構是雜湊表。
特點:執行緒不同步。
hashset是如何保證元素唯一性的呢?
是通過元素的兩個方法,hashcode和equals來完成。
如果元素的hashcode值相同,才會判斷equals是否為true。
如果元素的hashcode值不同,不會呼叫equals。
注意:判斷元素是否存在,以及刪除等操作,依賴的方法是元素的hashcode和equals方法。
|--treeset:底層資料結構是二叉樹。
可以對set集合中的元素進行排序。保證元素唯一性的依據:compareto方法return 0.
treeset排序的第一種方式:當元素自身具備比較性。元素需要實現comparable介面,覆蓋compareto方法。這種方式也成為元素的自然順序,或者叫做預設順序。
treeset的第二種排序方式。當元素自身不具備比較性時,或者具備的比較性不是所需要的。這時就需要讓集合自身具備比較性。通過定義比較器,將比較器物件作為引數傳遞給treeset集合的建構函式。定義乙個類,實現comparator介面,覆蓋compare方法。
collection定義了集合框架的共性功能。
新增 add(e);
addall(collection);
(add方法的引數型別是object,以便於接收任意型別物件)
刪除 remove(e);
removeall(collection);
clear();
判斷 contains(e);
isempty();
獲取 iterator();
size();
獲取交集 retainall();
集合變陣列 toarray();
list:(特有方法:凡是可以操作角標的方法都是該體系特有的方法。)
增加 add(index,element);
addall(index,collection);
刪除 remove(index);
修改 set(index,element);
查詢 get(index):
sublist(from,to);
listiterator();
int indexof(obj):獲取指定元素的位置。
listiterator listiterator();
list集合特有的迭代器。listiterator是iterator的子介面。該介面只能通過list集合的listiterator方法獲取。
linkedlist:特有方法:
addfirst(); 將指定元素插入此列表的開頭
addlast(); 將指定元素新增到此列表的結尾
getfirst(); 獲取此列表的第乙個元素,但不刪除元素
getlast(); 獲取此列表的最後乙個元素,但不刪除元素
注意:如果集合中沒有元素,會出現nosuchelementexception
removefirst(); 獲取此列表的第乙個元素,但刪除元素
removelast(); 獲取此列表的最後乙個元素,但刪除元素
注意:如果集合中沒有元素,會出現nosuchelementexception
在jdk1.6出現了替代方法。
offerfirst(); 將指定元素插入此列表的開頭
offerlast(); 將指定元素新增到此列表的結尾
peekfirst(); 獲取此列表的第乙個元素,但不刪除元素
peeklast(); 獲取此列表的最後乙個元素,但不刪除元素
注意:如果集合中沒有元素,會返回null。
pollfirst(); 獲取此列表的第乙個元素,但刪除元素
polllast(); 獲取此列表的最後乙個元素,但刪除元素
注意:如果集合中沒有元素,會返回null。
hashset
add(); 向set新增指定元素
clear(); 清除set中所有元素
contains(); 判斷set中是否包含某元素
isempty(); 判斷set是否為空
remove(); 刪除set中某元素
size(); 獲取set中元素數量
iterator();
treeset
示例:往treeset集合中儲存自定義物件學生,按照學生的年齡進行排序。
class treesetdemo }}
class student implements comparable//該介面強制讓學生具備比較性。
public int compareto(object obj)
return -1;
}public string getname()
public int getage()
}
java的collection學習總結
使用的物件比較方法的結果是否為0,是0,視為相同元素不存。元素排序比較有倆種方式 需要定義乙個類實現comparator介面,重寫compare方法。到此為止 再往集合中儲存物件時,通常該物件都需要覆蓋hashcode,equal方法。同時實現comparable介面,建立物件的自然排序。通常還有乙...
黑馬程式設計師 Collection學習總結
asp.net unity開發 net培訓 期待與您交流!collection容器學習總結 1.collection是所有容器都會實現的乙個根介面,他下面又細分了list,map,set三大子介面,collection實現了陣列的所有功能,和陣列相比,collection可以動態的改變 大小,其操作...
集合框架 Collection
collection是集合框架體系中的根介面,它有兩個常用的子介面,別是list和set list 有序 儲存順序和取出順序一致 可重複。實現了list介面的子類以及這些子類的區別 arraylist 底層資料結構是陣列,查詢快,增刪慢。執行緒不安全,效率高。vector 底層資料結構是陣列,查詢快...