Map集合
概述
- 將鍵映射到值的對象
- 一個映射不能包含重復(fù)的鍵
- 每個鍵最多只能映射到一個值
Map集合存儲元素是成對出現(xiàn)的,Map集合的鍵是唯一的,值是可重復(fù)的??梢园堰@個理解為:夫妻對
Collection集合存儲元素是單獨出現(xiàn)的,Collection的兒子Set是唯一的,List是可重復(fù)的。可以把這個理解為:"光棍"
注意:
Map集合的數(shù)據(jù)結(jié)構(gòu)值針對鍵有效,跟值無關(guān)
Collection集合的數(shù)據(jù)結(jié)構(gòu)是針對元素有效
下面我們來了解Map集合的功能概述
添加功能
V put(K key,V value):添加元素。
刪除功能
void clear():移除所有的鍵值對元素
V remove(Object key):根據(jù)鍵刪除鍵值對元素,并把值返回
判斷功能
boolean containsKey(Object key):判斷集合是否包含指定的鍵
boolean containsValue(Object value):判斷集合是否包含指定的值
boolean isEmpty():判斷集合是否為空
長度功能
int size():返回集合中的鍵值對的對數(shù)
獲取功能
V get(Object key):根據(jù)鍵獲取值
Set keySet():獲取集合中所有鍵的集合
Collection values():獲取集合中所有值的集合
Set< Map.Entry< K,V>> entrySet():返回的是鍵值對對象的集合
Map子類
HashMap
HashMap類概述
鍵是哈希表結(jié)構(gòu),可以保證鍵的唯一性
常用案例
HashMap< String,String>
HashMap< Integer,String>
HashMap< String,Student>
HashMap< Student,String>
上面的也不是非要是學(xué)生對象,可以是你需求的對象
LinkedHashMap
概述
- Map 接口的哈希表和鏈接列表實現(xiàn),具有可預(yù)知的迭代順序。
- 由哈希表保證鍵的唯一性,不可重復(fù)
- 由鏈表保證鍵盤的有序(存儲和取出的順序一致)
TreeMap
概述
鍵是紅黑樹結(jié)構(gòu),可以保證鍵的排序和唯一性
在輸出結(jié)果中:HashMap會打印出{null=world, java=null, android=hello}
而在Hashtable中會報錯
所以我們就能得出他們的區(qū)別
HashMap:線程不安全,效率高。允許null鍵和null值
Hashtable:線程安全,效率低。不允許null鍵和null值
Collections類
Collections類概述
針對集合進行操作的工具類,都是靜態(tài)方法。
Collection和Collections的區(qū)別
Collection:是單列集合的頂層接口,有子接口List和Set。
Collections:是針對集合操作的工具類,有對集合進行排序和二分查找的方法
Collections成員方法
public static < T> void sort(List list):排序 默認情況下是自然順序。
public static < T> int binarySearch(List< ?> list,T key):二分查找
public static < T> T max(Collection< ?> coll):最大值
public static void reverse(List< ?> list):反轉(zhuǎn)
public static void shuffle(List< ?> list):隨機置換