天天看點

雙列集合

Map集合

概述

雙列集合是每個元素都有鍵與值兩部分組成的集合,記錄的是鍵值對對應關系,即通過鍵可以找到值

鍵必須是唯一,值可以重複

常用子類

最常用的雙列集合是Map下的子類HashMap

LinkedHashMap

Hashtoble也是Map集合的一種已被HashMap取代

Map集合的特點

如是否可重複,是否有序僅用在鍵上,如HashMap集合的鍵不得重複,值可以重複

鍵是唯一的,且無序的

Map基本使用

Map接口的常用方法

V put(K key, V value);

   *存儲鍵值

   *如果鍵值存在,則使用新值替換舊值,傳回舊值

   *如果鍵不存在,則直接存儲,傳回null

V remove(Object key);

   *根據鍵删除鍵值對,傳回鍵對應的值

   *如果鍵不存在,則傳回null

V get (Object key);     

   *根據鍵找對應的值  

   *如果鍵存在,則傳回null

Int size();

   *獲得鍵值對的個數

boolean containsKey(Object key);

   *判斷集合中是否包含對應的鍵,包含傳回true,否則傳回false

boolean isEmpty();

   *判斷集合是否為空,有元素傳回false,否則傳回true

Map集合周遊方式的keySet()方法

Set<K> keySet();

思路

通過keySet()方法擷取所有鍵的集合

周遊鍵的集合,擷取到每一個鍵

根據鍵找值(調用get(Object key)方法鍵獲得值)

Map集合周遊方式的entrySet()方法

Set<Entry>entrySet();   //獲得Entry對象集合

思路

通過entrySet()方法擷取所有鍵值對對象的集合

周遊鍵值對對象的集合,擷取到每一個鍵值對對象

根據鍵值對對象找鍵和值(調用getKey和getValue方法)

entrySet()方法解釋

Set<Map.Entry<K,V>>entry()  方法用于傳回某個集合所有的鍵值對對象

Map.Entry說明Entry是Map的内部接口,将鍵和值封裝成了Entry對象,并存儲在Set集合中,可以從一個Entry對象中擷取一個鍵值對的鍵和值

Entry對象

每一個值都會被封裝成Entry對象

Entry對象常用方法

K getKey()     擷取鍵

V getValue()   擷取值

雙列集合

Map集合周遊方式增強for循環

不能直接使用增強for周遊,需要先獲得鍵集合或Entry對象集合,然後使用增強for周遊或Entry對象集合

LinkedHashMap

概述

Linked連結清單結構保證元素有順序,Hash結構保證元素唯一,以限制對鍵起作用

特點  

底層是連結清單實作的可以保證怎麼存怎麼取  

可變參數

概述

JDK1.5新特性

格式

資料類型...變量名

本質

就是一個數組

注意事項

可變參數必須是參數清單中的最後一個且隻能一個

可變參數隻能放在最後定義,可變參數方法本質時數組,是以不可以與數組類型參數重載

Collections工具類

Collections的常用方法

shuffle方法

作用: 打亂集合中元素的順序

sort 方法

作用: 對集合元素排序

sort方法簽名

  public static<T>void sort(List<T> list)

有順序:第一個元素是多少,第二個元素是多少,第幾個元素對應的是第幾,順序不變

排序:不管是第幾個放的,隻要放到集合中,就按照一定的順序重新排列了

雙列集合

Collections的二分法查找

binarySearch方法

作用: 查找集合中指定元素的索引

binarySearch方法簽名

  public static<T> int binarySearch(List<?>list, T key)

toString方法

作用: 傳回字元串内容

toString方法簽名

  Public satic String toString(Xxx[] a)

Arrays工具類

Arrays常用方法

static string toString(int[] a);

将數組的元素拼接成指定格式的字元串

static void sort(int[] a);

将數組中的元素進行排序:預設是升序

static void fill(int[] a, int val);

使用指定的值填充數組中的每一個元素

static boolean equals(int[] a, int []a2);

比較兩個數組的元素是否相同,相同傳回true,否則傳回false

static int binarySearch(int[] a, int key);

使用二分法查找法在指定的數組中查詢指定元素key

要求:數組中的元素必須有序

如果找到,則傳回該元素在數組的索引值

如果中找不到,則  傳回值=-插入點-1

插入點=-(傳回值+1)

static List asList(T...a);

将數組轉換為集合

集合轉數組

集合轉數組使用的是ArrayList中的toArray()方法

該方法是重載的方法

     Public Object[] toArray();

     Public <T> T[]toArray(T[] a);

如果參數數組足夠放下集合中所有元素,則将集合中的元素添加到參數數組并将參數數組作為傳回值

如果參數數組無法放下集合中的所有元素,則參數數組隻起到确定類型作用,方法邏輯會自動建立新數組存儲集合内容,并傳回新的數組

雙列集合

鬥地主案例

雙列集合
雙列集合
雙列集合

繼續閱讀