標籤:remove 替換 Map集合 特點 不重複 entry nbsp linked dHash
總結之 Map介面 的使用情境(day04)
Map:
Map中的集合,元素是成對存在的(理解為夫妻)。每個元素由鍵與值兩部分組成,通過鍵可以找對所對應的值
Map中的集合不能包含重複的鍵,值可以重複;每個鍵只能對應一個值。
特點:
鍵不重複,值可以重複
每個鍵只能對應一個值
子類:
HashMap:
儲存資料採用的雜湊表結構,元素的存取順序不能保證一致。由於要保證鍵的唯一、不重複,
需要重寫鍵的hashCode()方法、equals()方法。
LinkedHashMap
HashMap下有個子類LinkedHashMap,儲存資料採用的雜湊表結構+鏈表結構。
通過鏈表結構可以保證元素的存取順序一致;
通過雜湊表結構可以保證的鍵的唯一、不重複,需要重寫鍵的hashCode()方法、equals()方法。
常用方法:
- public V put(K key, V value): 把指定的鍵與指定的值添加到Map集合中。
- public V remove(Object key): 把指定的鍵 所對應的索引值對元素 在Map集合中刪除,返回被刪除元素的值。
- public V get(Object key) 根據指定的鍵,在Map集合中擷取對應的值。
- public Set<K> keySet(): 擷取Map集合中所有的鍵,儲存到Set集合中。
- public Set<Map.Entry<K,V>> entrySet(): 擷取到Map集合中所有的索引值對對象的集合(Set集合)。
notes:
使用put方法時,若指定的鍵(key)在集合中沒有,則沒有這個鍵對應的值,返回null,
並把指定的索引值添加到集合中;
若指定的鍵(key)在集合中存在,則傳回值為集合中鍵對應的值(該值為替換前的值),
並把指定鍵所對應的值,替換成指定的新值。
遍曆方法:
the fist way
鍵找值方式:即通過元素中的鍵,擷取鍵所對應的值
分析步驟:用keyset()
①擷取Map集合中所有的鍵,由於鍵是唯一的,所以返回一個Set集合儲存所有鍵,
②遍曆所有的鍵
③根據鍵找對應的值
the scecond way
Entry表示了一對鍵和值,那麼也同樣提供了擷取對應鍵和對應值得方法
- public K getKey():擷取Entry對象中的鍵。
- public V getValue():擷取Entry對象中的值。
在Map集合中也提供了擷取所有Entry對象的方法:
- public Set<Map.Entry<K,V>> entrySet(): 擷取到Map集合中所有的索引值對對象的集合(Set集合)。
①擷取Map集合中,所有的索引值對 Entry對象 以Set的形式返回,entrySet()
②遍曆包含索引值對 對象的 集合 拿到 每一對索引值對 對象
③通過索引值對 對象 擷取Entry對象中的鍵與值 方法提示 getKey() getValue()
1.HashMap
①HashMap儲存自訂類型索引值
- 當給HashMap中存放自訂對象時,如果自訂對象作為key存在,這時要保證對象唯一,
必須複寫對象的hashCode和equals方法(如果忘記,請回顧HashSet存放自訂對象)。
- 如果要保證map中存放的key和取出的順序一致,可以使用java.util.LinkedHashMap集合來存放。
2LinkedHashMap
① 使無序的 HashMap變的有序
Java之Map的使用情境