常用集合的特點總結

2021-08-01 12:10:35 字數 2734 閱讀 9650

物件用於封裝特有資料,物件多了需要儲存,如果物件的個數不確定。就使用集合容器進行儲存。

1,用於儲存物件的容器。

2,集合的長度是可變的。

3,集合中不可以儲存基本資料型別值。 

集合容器因為內部的資料結構不同,有多種具體容器。

不斷的向上抽取,就形成了集合框架。

框架的頂層collection介面:

1,新增。

boolean add(object obj):

boolean addall(collection coll):

2,刪除。

boolean remove(object obj):

boolean removeall(collection coll);

void clear();

3,判斷:

boolean contains(object obj):

boolean containsall(colllection coll);

boolean isempty():判斷集合中是否有元素。 

4,獲取:

int size():

iterator iterator():取出元素的方式:迭代器。

該物件必須依賴於具體容器,因為每乙個容器的資料結構都不同。

所以該迭代器物件是在容器中進行內部實現的。

對於使用容器者而言,具體的實現不重要,只要通過容器獲取到該實現的迭代器的物件即可,也就是iterator方法。

iterator介面就是對所有的collection容器進行元素取出的公共介面。

其實就是抓娃娃遊戲機中的夾子!

5,其他:

boolean retainall(collection coll);取交集。

object toarray():將集合轉成陣列。 

|--list:有序(存入和取出的順序一致),元素都有索引(角標),元素可以重複。

|--set:元素不能重複,無序。

1,新增

void add(index,element);

void add(index,collection);

2,刪除;

object remove(index):

3,修改:

object set(index,element);

4,獲取:

object get(index);

int indexof(object);

int lastindexof(object);

list sublist(from,to);

list集合是可以完成對元素的增刪改查。

|--vector:內部是陣列資料結構,是同步的。增刪,查詢都很慢!

|--arraylist:內部是陣列資料結構,是不同步的。替代了vector。查詢的速度快。

|--linkedlist:內部是鍊錶資料結構,是不同步的。增刪元素的速度很快。

addfirst();

addlast():

jdk1.6

offerfirst();

offetlast();

getfirst();.//獲取但不移除,如果鍊錶為空,丟擲nosuchelementexception.

getlast();

jdk1.6

peekfirst();//獲取但不移除,如果鍊錶為空,返回null.

peeklast():

removefirst();//獲取並移除,如果鍊錶為空,丟擲nosuchelementexception.

removelast();

jdk1.6

pollfirst();//獲取並移除,如果鍊錶為空,返回null.

polllast();

set介面中的方法和collection一致。

如何保證該集合的元素唯一性呢?

是通過物件的hashcode和equals方法來完成物件唯一性的。

如果物件的hashcode值不同,那麼不用判斷equals方法,就直接儲存到雜湊表中。 

如果物件的hashcode值相同,那麼要再次判斷物件的equals方法是否為true。

如果為true,視為相同元素,不存。如果為false,那麼視為不同元素,就進行儲存。

記住:如果元素要儲存到hashset集合中,必須覆蓋hashcode方法和equals方法。

一般情況下,如果定義的類會產生很多物件,比如人,學生,書,通常都需要覆蓋equals,hashcode方法。

建立物件判斷是否相同的依據。

判斷元素唯一性的方式:就是根據比較方法的返回結果是否是0,是0,就是相同元素,不存。 

treeset對元素進行排序的方式一:

讓元素自身具備比較功能,元就需要實現comparable介面。覆蓋compareto方法。

如果不要按照物件中具備的自然順序進行排序。如果物件中不具備自然順序。怎麼辦?

可以使用treeset集合第二種排序方式二:

讓集合自身具備比較功能,定義乙個類實現comparator介面,覆蓋compare方法。

將該類物件作為引數傳遞給treeset集合的建構函式。

if(this.hashcode()== obj.hashcode() && this.equals(obj))

1,判斷的是兩個元素的雜湊值是否相同。

如果相同,在判斷兩個物件的內容是否相同。

2,判斷雜湊值相同,其實判斷的是物件的hashcode的方法。判斷內容相同,用的是equals方法。

注意:如果雜湊值不同,是不需要判斷equals。

Java集合常用類特點

集合的結構如下圖所示 集合的兩個頂級介面分別為 collection和map collection下有兩個比較常用的介面分別是list 列表 和set 集 其中list可以儲存重複元素,元素是有序的 訪問順序一致 可以通過list腳標來獲取指定元素 而set不可以有重複元素,元素是無序的。list介...

集合的特點

1。set集合概述和特點 總結 set集合的特點 不允許儲存重複的元素 沒有索引 set集合的基本使用 new hashset 2.雜湊值 總結 雜湊值簡介 用於計算儲存元素的位置的.提高儲存元素和取出元素的效率的 如何獲取雜湊值 hashcode 雜湊值的特點 同乙個物件的雜湊值是一樣的 預設情況...

集合的特點

集合的特點 有的可變,有的不可變 元素無次序,不可重複。集合中的元素不能重複,可作為一種簡單高效的元素去重方式。集合沒有索引,它的元素無次序,不是序列。利用set 和 建立集合時,要求集合中的元素必須是可雜湊 hsshable 的,即在利用set 和 建立集合的時候,集合中的元素必須是不可變的。利用...