黑馬程式設計師 集合筆記

2021-07-08 20:04:14 字數 1478 閱讀 6626

一、定義:用來存放不同型別的物件,長度是可以變的

connection有兩個子類:list,set

list(允許元素重複),set(不允許元素 重複)

list的子類:arraylist,linkedlist,vector

set的子類:hashset,treeset

為什麼會出現這麼多容器呢?

因為每乙個容器對資料的儲存方式不同,這個儲存方式叫:資料結構。

arraylist集合:

建立集合:

arraylist al=newarraylist();

二、集合中的常用方法:

add();新增元素

add方法引數型別都是object 便於接收任何型別物件,並且集合中儲存的都是引用位址。

size();獲取長度

remove();刪除

clear();清空集合

contains(obj);判斷集合是否存在引數中的元素

isempty();判斷是否為空

retainall(list);獲取這兩個集合的交集

removeall(list);把兩個集合的交集去掉

三、元素的迭代輸出iterator

iteratorit=al.iterator();建立乙個迭代器it

當集合中有元素的時候,取出集合中的元素

while(it.hasnext())這種寫法迭代輸出,迴圈完之後記憶體釋放了,而while迴圈之後it的物件還在記憶體,所以,對於記憶體優化來說,寫for迴圈比較好

四、list集合特有的迭代器listiterator,它是iterator的子介面

在迭代時,不可以通過集合物件的方法操作集合的元素,所以在迭代時,只能用迭代器的方法操作元素。

listiteratorli=al.listiterator();這個迭代器增刪改查都有,所以這個類出現以後就可以在遍歷過程中進行增刪改查了

五、vector 的迭代器enumeration

enumeration和iteratro的用法類似用while迴圈迭代集合內容。列舉和迭代一樣的,只不過列舉的方法名字太長了

六、linkedlist特有方法

addfirst()把元素新增到第乙個

addlast();把元素新增到最後乙個

getfirst();得到第乙個元素

getlast();得到最後乙個元素

removefirst()移除第乙個

removelast();移除最後乙個

pollfirst()方法可以代替removefirst()方法,如果集合沒有元素,可以返回null值

peekfirst代替getfirst,如果集合沒有元素,可以返回null值

offerfirst代替addfirst,

而add,get,remove,沒有元素會拋異常

黑馬程式設計師 集合

collection list 元素是有序的,元素可以重複。因為該集合體系有索引。arraylist 底層的資料結構使用的是陣列結構。特點 查詢速度很快。但是增刪稍慢。執行緒不同步。linkedlist 底層使用的鍊錶資料結構。特點 增刪速度很快,查詢稍慢。執行緒不同步。vector 底層是陣列資料...

黑馬程式設計師 集合

asp.net unity開發 net培訓 期待與您交流!1.集合類 為什麼會出現集合類?面對物件語言對事物的體現都是以物件的形式,所以為了方便對多個物件的操作,就對物件進行儲存,集合就是儲存物件最常用的一種方式。集合類的特點 集合只用於儲存物件,集合的長度是可變的,集合可以儲存不同型別的物件。集合...

黑馬程式設計師 集合

集合 string類 字串是乙個特殊的物件。字串一旦初始化就不可以被改變。string str abc string str1 new string abc 基本資料型別物件包裝類 將基本資料型別封裝成物件的好處在於可以在 物件中定義更多的功能方法操作該資料。常用的操作之一 用於基本資料型別與字串 ...