我的學習之路_第八章_map集合
【Map集合】
Map集合中常用方法:
1: 返回值:value值 put(K key, V value) 往Map集合中添加元素,如果key值重復,那麽將返回被覆蓋的value值.
2: 返回值:value值 get(Object key) 傳入一個key值,返回相對應的value值.如果沒有,則返回null.
3: 返回值:value值 remove(Object key) 傳入一個key值,刪除此key值與相對應的value值.返回被刪除的value值.
Map集合的特點:
1:Map集合是一個雙列集合,賦值的時候必須同時給key值和value值賦值.
2:Map集合是一個無序集合.
3:Map集合的key值不可以重復,value值可以重復.
4:Map集合中一個key值只能對應一個value值.
5:定義Map集合時,key和value可以使用相同的數據類型,也可以使用不同的數據類型.
Map集合的第一種遍歷方式:(通過鍵查找值的方式)
返回值 Set<K> keySet() 返回此映射中包含的鍵的Set視圖. 把Map集合中的鍵存儲到一個Set集合中
遍歷Map集合的步驟:
1:定義Map集合,往集合中添加元素.(put方法添加元素)
2:調用Map集合中的方法keySet,把Map集合中的鍵存儲到一個Set集合中
3:遍歷Set集合,獲取Map集合所有的鍵值.
4:通過獲取到的鍵,使用Map集合的方法get查找到對應的key值.
Map集合的第二種遍歷方式:(遍歷鍵值對的方式)
返回值 Set<Map.Entry<K,V>> entrySet() 返回此映射中包含的映射關系的Set視圖
遍歷Map集合的步驟:
1:定義一個Map集合,往集合中添加元素.(用put方法)
2:調用Mao集合中的方法 entrySet ,把Map集合中的每一個映射關系(結婚證)放入到Set集合中.
3:遍歷Set集合,獲取每個映射關系 Entry<K,V>.
4:使用 Entry<K,V> 中的方法 getKey 和 getValue 獲取鍵和值
★註意:使用自定義類型作為Map集合的鍵Key 時, 必須要重寫hashcode 和 equals . 來保證key 的唯一性.
Map集合中的實現類:
◆ HashMap<K,V> 線程不安全,運行速度快
底層數據結構是哈希表,特點 無序.由於要保證鍵的唯一,不重復,需要重寫鍵的 hashcode() 方法 和 equals()方法.
◆ LinkedHashMap<K,V> 繼承(extends) HashMap
底層數據結構為哈希表_鏈表結構.特點: 有序,不重復.由於要保證鍵的唯一,不重復,需要重寫鍵的 hashcode() 方法 和 equals()方法.
◆ Hashtable 線程安全,運行速度慢
和HashMap一樣. JDK1.2開始被 HashMap取代. 特點 不能存 null 值.
雖然Hashtable被取代了,但是他的子類 Properties 依然活躍在開發的舞臺.
可變參數:
JDK1.5之後出來的新特性. 可以接受多個同類型的參數.
底層就是一個數組
格式: 修飾符 返回值類型 方法名 (參數類型...形參名){ }
★註意: 1:一個方法的參數,只能使用一個可變參數
2:如果方法的參數有多個,可變參數必須寫在參數列表的末尾.
Arrays數組工具類:
用來對數組進行操作,是一個靜態方法,直接類名.方法名調用.
返回值:Object binarySearch(Object[] a, Object key) 使用二分法查找法來查找指定的元素,沒有則會返回(1(插入點)-1).
返回值:Object[] copyOfRange(舊數組,要復制的開始索引,新數組,索引,復制幾個) 將指定的數組的指定返回復制到一個新的數組.
sort(Object[] o) 對指定的數組進行升序排序
返回值:String tostring(Object[] o) 返回指定數組內容的字符串表示形式.
Collections集合工具類:
用來對集合進行操作,是一個靜態方法. 直接類名.方法名調用.
沒有返回值 shuffle(List<?> list) 將集合中的順序打亂.
沒有返回值 sort(List<T> list) 傳一個集合,對集合進行升序排序.
我的學習之路_第八章_map集合