collection 是單列集合的頂層介面。collection的常用方法:
boolean add(e e) 確保此 collection 包含指定的元素。
boolean addall(collection<? extends e> c) 將指定 collection 中的所有元素都新增到此 collection 中。
void clear() 移除此 collection 中的所有元素。
boolean contains(object o) 如果此 collection 包含指定的元素,則返回 true。
boolean containsall(collection<?> c) 如果此 collection 包含指定 collection 中的所有元素,則返回 true。
iteratoriterator() 返回在此 collection 的元素上進行迭代的迭代器。
boolean remove(object o) 從此 collection 中移除指定元素的單個例項,如果存在的話。
boolean removeall(collection<?> c) 移除此 collection 中那些也包含在指定 collection 中的所有元素。
boolean retainall(collection<?> c) 僅保留此 collection 中那些也包含在指定 collection 的元素。
int size() 返回此 collection 中的元素數。
object toarray() 返回包含此 collection 中所有元素的陣列。
collection的兩個子介面 list和set
list是有序的collection,元素儲存順序一致,元素可以重複。list常用的方法有:
e get(int index) 返回列表中指定位置的元素。
int indexof(object o) 返回此列表中第一次出現的指定元素的索引;如果此列表不包含該元素,則返回 -1。
int lastindexof(object o) 返回此列表中最後出現的指定元素的索引;如果列表不包含此元素,則返回 -1。
listiteratorlistiterator() 返回此列表元素的列表迭代器(按適當順序)。
e set(int index, e element) 用指定元素替換列表中指定位置的元素(可選操作)。
listsublist(int fromindex, int toindex) 返回列表中指定的 fromindex(包括 )和 toindex(不包括)之間的部分檢視。
list的三個子實現類arraylist 、 linkedlist 和vector
arraylist 底層資料結構是陣列,查詢快,增刪慢,執行緒不同步,效率高,可以儲存重複元素
linkedlist 底層資料結構是鍊錶,查詢慢,增刪快,執行緒不安全,效率高
linkedlist的特有方法
void addfirst(e e)
將指定元素插入此列表的開頭。
void addlast(e e)
將指定元素新增到此列表的結尾。
e getfirst()
返回此列表的第乙個元素。
e getlast()
返回此列表的最後乙個元素。
e removefirst()
移除並返回此列表的第乙個元素。
e removelast()
移除並返回此列表的最後乙個元素。
vector:底層資料結構是陣列,查詢快,增刪慢,執行緒安全,效率低。
void addelement(e obj)
將指定的元件新增到此向量的末尾,將其大小增加 1。
e elementat(int index)
返回指定索引處的元件。
enumerationelements()
返回此向量的元件的列舉。
e firstelement()
返回此向量的第乙個元件(位於索引 0) 處的項)。
e lastelement()
返回此向量的最後乙個元件。
set集合 元素無序(元素訪問的順序不一致), 元素不可以重複。
set 的三個子實現類 hashset 、linkedhashset、treeset
hashset 底層資料結構是hash表,元素的訪問順序不一致,允許儲存null鍵和null值,執行緒不安全,效率高,元素唯一。
hashset集合保證元素的唯一性是靠元素重寫hahscode()方法和equals()方法,如果元素不重寫這兩個方法,則無法保證元素的唯一性。
linkedhashset 底層資料結構是鍊錶和hash表,執行緒不安全,效率高。
鍊錶保證了元素有序,hash表保證了元素唯一
treeset 底層資料結構是二叉樹,元素唯一,能對元素進行排序,執行緒不安全,效率高。
treeset中排序的方法
1、自然排序,使用空參構造,要求元素實現實comparable介面 重寫compareto方法
2、比較器排序,使用有參構造,傳入comparator比較器 重寫compare方法。
map 將鍵對映到值的物件。乙個對映不能包含重複的鍵,每個鍵最多只能應設乙個值。
map的所有資料結構只與鍵有關。
map 的常用方法
void clear() 從此對映中移除所有對映關係(可選操作)。
boolean containskey(object key) 如果此對映包含指定鍵的對映關係,則返回 true。
boolean containsvalue(object value) 如果此對映將乙個或多個鍵對映到指定值,則返回 true。
set> entryset() 返回此對映中包含的對映關係的 set 檢視。
boolean equals(object o) 比較指定的物件與此對映是否相等。
v get(object key) 返回指定鍵所對映的值;如果此對映不包含該鍵的對映關係,則返回 null。
int hashcode() 返回此對映的雜湊碼值。
boolean isempty() 如果此對映未包含鍵-值對映關係,則返回 true。
setkeyset() 返回此對映中包含的鍵的 set 檢視。
v put(k key, v value) 將指定的值與此對映中的指定鍵關聯(可選操作)。
void putall(map<? extends k,? extends v> m) 從指定對映中將所有對映關係複製到此對映中(可選操作)。
v remove(object key) 如果存在乙個鍵的對映關係,則將其從此對映中移除(可選操作)。
int size() 返回此對映中的鍵-值對映關係數。
collectionvalues() 返回此對映中包含的值的 collection 檢視。
map 的兩種遍歷方式
方式1 使用 keyset() 得到鍵的集合,通過鍵找值。
方式2 使用entryset() 返回對映關係的set集合,通過getkey(),getvalue()得到值。
hashmap 基於雜湊表的map介面的實現。執行緒不同步,允許使用null建和null值,元素無序,如果鍵相同值覆蓋。
linkedhashmap map介面的雜湊表和鏈結列表的實現,執行緒不同步,元素有序且唯一。
treemap 的底層資料結構是二叉樹,可與對元素進行排序,執行緒不安全。
java中的集合
set hashset無序不重複,底層資料結構是雜湊表,執行緒非同步,保證元素唯一性原理是判斷hashcode值是否相同 位址相同 如果相同還會繼續判斷equals方法是否為true 是否是同乙個物件 treeset字典序不重複,底層資料是二叉樹,保證元素唯一性原理是compareto方法retur...
Java中的集合
有序的 允許重複的 arraylist實現類 基於陣列實現 remove語句,刪除成功則返回true,不成功則返回false 注 不要在迭代時進行刪除,否則會出錯,可以使用迭代器自身的remove方法,如上。linklist實現類 基於鍊錶實現 與arraylist區別 越靠近頭部的新增刪除,arr...
java中的集合
1.1 collection介面 新增 add e e addall collectionc 刪除 clear 清空集合 remove object o 刪除乙個元素 removeall collection c 刪除兩個集合的交集部分 retainall collection c 刪除兩個集合沒有...