1.Map接口
將鍵映射到值的對象
一個映射不能包含重複的鍵
每個鍵最多隻能映射到一個值
Map接口和Collection接口的不同
- Map是雙列的,Collection是單列的
- Map的鍵唯一,Collection的子體系Set是唯一的
- Map集合的數據結構值針對鍵有效,跟值無關
- Collection集合的數據結構是針對元素有效
Map集合的功能概述
添加功能
V put(K key,V value):添加元素。
如果鍵是第一次存儲,就直接存儲元素,返回null
如果鍵不是第一次存在,就用值把以前的值替換掉,返回以前的值刪除功能
void clear():移除所有的鍵值對元素
V remove(Object key):根據鍵刪除鍵值對元素,並把值返回判斷功能
boolean containsKey(Object key):判斷集合是否包含指定的鍵
boolean containsValue(Object value):判斷集合是否包含指定的值
boolean isEmpty():判斷集合是否爲空獲取功能
V get(Object key):根據鍵獲取值
Set keySet():獲取集合中所有鍵的集合
Collection values():獲取集合中所有值的集合- 長度功能
int size():返回集合中的鍵值對的對數
Map集合的遍歷
- 方式1:
1)根據鍵找值
2)獲取所有鍵的集合
3)遍歷鍵的集合,獲取到每一個鍵
4)根據鍵找值 - 方式2:
1)根據鍵值對對象找鍵和值
2)獲取所有鍵值對對象的集合
3)遍歷鍵值對對象的集合,獲取到每一個鍵值對對象
4)根據鍵值對對象找鍵和值
2.HashMap類
HashMap類概述
鍵是哈希表結構,可以保證鍵的唯一性(重寫hashcode equals)
HashMap<String,String>
HashMap<Integer,String>
HashMap<String,Student>
HashMap<Student,String>
HashMap:是基於哈希表的Map接口實現。
哈希表的作用是用來保證鍵的唯一性的。
HashMap<String,String>
鍵:String
值:String
Hashtable和HashMap的區別?
Hashtable:線程安全,效率低。不允許null鍵和null值
HashMap:線程不安全,效率高。允許null鍵和null值
3.LinkedHashMap類
概述
LinkedHashMap:是Map接口的哈希表和鏈接列表實現,具有可預知的迭代順序。
由哈希表保證鍵的唯一性
由鏈表保證鍵的有序(存儲和取出的順序一致)
4.TreeMap類
TreeMap類概述
鍵是紅黑樹結構,可以保證鍵的排序和唯一性
TreeMap:是基於紅黑樹的Map接口的實現。
TreeMap<String,String>
鍵:String
值:String
應用中
HashMap嵌套HashMap
ArrayList嵌套HashMap
5.Collections類
Collections類概述
針對集合操作 的工具類
Collection和Collections的區別?
Collection:是單列集合的頂層接口,有子接口List和Set。
Collections:是針對集合操作的工具類,有對集合進行排序和二分查找的方法
Collections成員方法
public static <T> void sort(List<T> list):排序 默認情況下是自然順序。
public static <T> int binarySearch(List<?> list,T key):二分查找
public static <T> T max(Collection<?> coll):最大值
public static void reverse(List<?> list):反轉
public static void shuffle(List<?> list):隨機置換