collection學習日誌

2021-07-04 06:04:07 字數 2856 閱讀 8696

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 底層資料結構是陣列,查詢快...