總結之 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變的有序
