集合類和介面中的方法

2021-08-25 04:37:57 字數 3095 閱讀 4137

1.collection 介面:用於表示任何物件或元素組。

(1) 單元素新增、刪除操作:

boolean add(object o):將物件新增給集合

boolean remove(object o): 如果集合中有與o相匹配的物件,則刪除物件o

(2) 查詢操作:

int size() :返回當前集合中元素的數量

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

boolean contains(object o) :查詢集合中是否含有物件o

iterator iterator() :返回乙個迭代器,用來訪問集合中的各個元素

(3) 組操作 :作用於元素組或整個集合

boolean containsall(collection c): 查詢集合中是否含有集合c 中所有元素

boolean addall(collection c) : 將集合c 中所有元素新增給該集合

void clear(): 刪除集合中所有元素

void removeall(collection c) : 從集合中刪除集合c 中的所有元素

void retainall(collection c) : 從集合中刪除集合c 中不包含的元素

(4) collection轉換為object陣列 :

object toarray() :返回乙個內含集合所有元素的array

object toarray(object a) :返回乙個內含集合所有元素的array。執行期返回的array和引數a的型別相同,需要轉換為正確型別。

collection不提供get()方法。如果要遍歷collectin中的元素,就必須用iterator。

1.2.iterator 介面

collection 介面的iterator()方法返回乙個 iterator。

(1) boolean hasnext(): 判斷是否存在另乙個可訪問的元素

object  next(): 返回要訪問的下乙個元素。如果到達集合結尾,則丟擲

nosuchelementexception異常。

(2) void remove(): 刪除上次訪問返回的物件。

2.list介面

list 介面繼承了 collection 介面以定義乙個允許重複項的有序集合。該介面不但能夠對列表的一部分進行處理,還新增了面向位置的操作。

void add(int index, object element): 在指定位置index上新增元素element

boolean addall(int index, collection c): 將集合c的所有元素新增到指定位置index

object get(int index): 返回list中指定位置的元素

int indexof(object o): 返回第乙個出現元素o的位置,否則返回-1

int lastindexof(object o) :返回最後乙個出現元素o的位置,否則返回-1

object remove(int index) :刪除指定位置上的元素

object set(int index, object element) :用元素element取代位置index上的元素,並且返回舊的元素

listiterator listiterator() : 返回乙個列表迭代器,用來訪問列表中的元素

listiterator listiterator(int index) : 返回乙個列表迭代器,用來從指定位置index開始訪問列表中的元素

3.set介面及其實現

hashset是使用乙個雜湊表儲存元素的,是非排序的,可以隨機訪問,是set的最優性能實現.treeset實現了sortedset介面,使用乙個紅黑樹來儲存元素,提供了元素的有序儲存和訪問.

hashset在底層實現上依賴於hashmap.

public hashset() {

map = new hashmap();

public boolean add(e o) {

return map.put(o, present)==null;

public boolean remove(object o) {

return map.remove(o)==present;

public boolean contains(object o) {

return map.containskey(o);

從**可見,hashset在底層借用hashmap,使用乙個object型別的啞元值作為hashset中元素在底層hashmap儲存中的對映值.它抓住了hashmap的鍵不允許重複的特性.對於add()中呼叫底層對映的put(),將欲新增的元素和乙個present啞元值放入底層map.如果底層map返回null,說明原來的集合中並不存在該鍵.

注意:對於map介面的put()返回null時有兩種解釋,一是原來的map中不包含該鍵;另一種可能是原來的map中已經儲存了該健,但該鍵對映到null.而在hashset中的add()和remove()等中的返回null只有一種解釋,即原來的集合不包含該元素.這是因為hashset的底層的對映中儲存的都是乙個名為present的object型別的物件,不可能是null.

4. map介面

(1) 新增、刪除操作:

object put(object key, object value): 將互相關聯的乙個關鍵字與乙個值放入該映像。如果該關鍵字已經存在,那麼與此關鍵字相關的新值將取代舊值。方法返回關鍵字的舊值,如果關鍵字原先並不存在,則返回null

object remove(object key): 從映像中刪除與key相關的對映

void clear(): 從映像中刪除所有對映

(2) 查詢操作:

object get(object key): 獲得與關鍵字key相關的值,並且返回與關鍵字key相關的物件,如果沒有在該映像中找到該關鍵字,則返回null

boolean containskey(object key): 判斷映像中是否存在關鍵字key

boolean containsvalue(object value): 判斷映像中是否存在值value

int size(): 返回當前映像中對映的數量

boolean isempty() :判斷映像中是否有任何對映

c 中常用集合類和集合介面之集合類系列

常用集合類 陣列 array 的不足 即 集合與陣列的區別 1.陣列是固定大小的,不能伸縮。雖然system.array.resize這個泛型方法可以重置陣列大小,但是該方法是重新建立新設定大小的陣列,用的是舊陣列的元素初始化。隨後以前的陣列就廢棄!而集合卻是可變長的。2.陣列要宣告元素的型別,集合...

c 中常用集合類和集合介面之集合類系列

常用集合類 陣列 array 的不足 即 集合與陣列的區別 1.陣列是固定大小的,不能伸縮。雖然system.array.resize這個泛型方法可以重置陣列大小,但是該方法是重新建立新設定大小的陣列,用的是舊陣列的元素初始化。隨後以前的陣列就廢棄!而集合卻是可變長的。2.陣列要宣告元素的型別,集合...

集合類 Collection介面

常用集合 list集合,set集合,map集合,其中list集合,set集合繼承了collection介面 集合類又被稱為容器,裡面的長度是可變的 collection介面通常不直接使用 collection介面常用方法 方法描述 add e e 將指定物件新增到該集合中 remove 將指定物件從...