1. 程式人生 > >複習筆記10 Map與Set集合

複習筆記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中的方法

CollectionCollections有什麼區別?

 * 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()方法