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);
如果參數數組足夠放下集合中所有元素,則将集合中的元素添加到參數數組并将參數數組作為傳回值
如果參數數組無法放下集合中的所有元素,則參數數組隻起到确定類型作用,方法邏輯會自動建立新數組存儲集合内容,并傳回新的數組
鬥地主案例