複習筆記10 Map與Set集合
1 HashSet集合
1.1 Set介面的特點
Set體系的集合:
A:存入集合的順序和取出集合的順序不一致
B:沒有索引
C:存入集合的元素沒有重複
HashSet唯一性原理:
規則:新新增到HashSet集合的元素都會與集合中已有的元素一一比較
首先比較雜湊值(每個元素都會呼叫hashCode()產生一個雜湊值)
如果新新增的元素與集合中已有的元素的雜湊值
如果新新增的元素與集合中已有的某個元素雜湊值相同,此時還需要呼叫equals(Object obj)比較
如果equals(Object obj)方法返回true,說明新新增的元素與集合中已有的某個元素的屬性值相同,那麼新添加的元素不存入集合
如果equals(Object obj)方法返回false, 說明新新增的元素與集合中已有的元素的屬性值都不同, 那麼新添
1.2 Collection中的方法
Collection和Collections有什麼區別?
* Collection是集合體系的最頂層,包含了集合體系的共性
* Collections是一個工具類,方法都是用於操作Collection
static void swap(List list, int i, int j) :將指定列表中的兩個索引進行位置互換
static void sort(List<T> list) :按照列表中元素的自然順序進行排序
static void shuffle(List list):隨機置換
static void reverse(List list) :反轉
static void fill(List list, Object obj) :使用指定的物件填充指定列表的所有元素
static void copy(List dest, List src) :是把源列表中的資料覆蓋到目標列表
注意:目標列表的長度至少等於源列表的長度
static int binarySearch(List list, Object key) 使用二分查詢法查詢指定元素在指定列表的索引位置
2 HashMap集合
2.1 Map介面概述
A:Collection中的集合,元素是孤立存在的,向集合中儲存元素採用一個個元素的方式儲存
B:Map中的集合,元素是成對存在的。每個元素由鍵與值兩部分組成,通過鍵可以找對所對應的值。
C:Collection中的集合稱為單列集合,Map中的集合稱為雙列集合。
需要注意的是,Map中的集合不能包含重複的鍵,值可以重複;每個鍵只能對應一個值。
2.2 Map的常用功能
A:對映功能:
V put(K key, V value) :以鍵=值的方式存入Map集合
B:獲取功能:
V get(Object key):根據鍵獲取值
int size():返回Map中鍵值對的個數
C:判斷功能:
boolean containsKey(Object key):判斷Map集合中是否包含鍵為key的鍵值對
boolean containsValue(Object value):判斷Map集合中是否包含值為value鍵值對
boolean isEmpty():判斷Map集合中是否沒有任何鍵值對
D:刪除功能:
void clear():清空Map集合中所有的鍵值對
V remove(Object key):根據鍵值刪除Map中鍵值對
E:遍歷功能:
Set<Map.Entry<K,V>> entrySet():將每個鍵值對封裝到一個個Entry物件中,再把所有Entry的物件封裝到Set集合中返回
Set<K> keySet() :將Map中所有的鍵裝到Set集合中返回
Collection<V> values():返回集合中所有的value的值的集合
2.3 Map的兩種遍歷方式
1:得到所有的key,通過key得到所有的value
2: 使用entrySet()方法