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 將指定物件從...