Java中的Map接口——學習小結

1.什麼是Map

Map是Java集合中的三大接口之一,其存儲形式爲鍵(Key)值(Value)對,是程序開發中大部分數據存儲時
所採用的存儲形式。如:MySQL、JSON、XML。

Map形式稱爲雙邊隊列,即Key與Value互相對應。但需要注意:Key是唯一的,不可能有多個重複的Key。
而Value是可重複的。

具體形式如表格:


Key Value
姓名 燕雙鷹
年齡 30
性別

2.Map接口的實現類

interface Map<K, V>
--| class HashMap<K, V>	哈希表
--| class TreeMap<K, V>	底層是樹形結構,存儲要求K有對應的排序方式

3.方法

3.1 增:

put(K k, V v);
 存入一個鍵值對類型,K和V都要符合泛型約束
putAll(Map < ? extends K, ? extends V > map);
 存入另一個Map雙邊隊列,並且要求添加的Map雙邊隊列中的K和V都要和當前Map中存儲的K和V一致。

3.2 刪:

remove(Object k);
 刪除對應K的鍵(Key)值(Value)對

3.3 改:

put(K k, V v);
 對應當前K存在,修改對應內容

3.4 查:

int size();
 當前Map雙邊隊列中,有效鍵值對個數
boolean isEmpty();
 是否爲空
boolean containsKey(Object key);
 判斷指定的Key是否存在
boolean containsValue(Object value);
 判斷指定的Value是否存在
Set<K> keySet();
 返回整個Map雙邊隊列中所有Key對應的Set集合
 	【注意:】	
	一個方法使用set結尾,表示該方法返回值是一個集合類型,大多數情況下都是Set類型
Collection<V> values();
 返回整個Map雙邊隊列中所有Value對應的Collection集合
 	【注意】
 	方法名如果是一個複數,返回值類型集合或者數組情況居多

4.EntrySet

Entry可以認爲是鍵值對對象。
定義在Map類內

class Entry<K,V> {
	K k;
	V v;
	}
	K, V 是完全依賴於Map約束的,這裏可以認爲Entry裏保存的是每一個鍵值對類對象。

Map中提供了一個方法

Set<Entry<K, V>> entrySet
返回值是鍵值對類對象Set集合
Set集合中存儲的是Entry類型
Entry類型是帶有泛型的

代碼:

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class Demo1 {
	public static void main(String[] args) {
		HashMap<String, String> map = new HashMap<String, String>();
		
		map.put("吳京", "謝楠");
		map.put("鄧超", "娘娘");
		map.put("黃磊", "孫莉");
		map.put("王寶強", "XX");
		
		Set<Map.Entry<String, String>> entrySet = map.entrySet();
		
		System.out.println(entrySet);
	}
}
運行結果:
[鄧超=娘娘, 吳京=謝楠, 黃磊=孫莉, 王寶強=XX]

5.TreeMap

K是需要有對應的比較方式,如果沒有比較方式,則無法存入
推薦使用Comparator接口。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章