1. 概述
java.util.Map <K,V>接口是一個頂層接口,里面存放的數(shù)據(jù)單元是:單對元素;
Map接口的主要實現(xiàn)類:
HashMap類 (哈希表數(shù)據(jù)結(jié)構(gòu))
TreeMap類 (紅黑樹)
2. 常用方法
Map <K,V>
V put(K key, V value) -將參數(shù)指定的key 和 value組成一個完整鍵值對,放入集合。
- 若集合中之前沒有該key值,則返回null。
-否則返回之前key值對應(yīng)的value值。
V remove(Object key) -刪除參數(shù)指定key對應(yīng)的鍵值對,返回key對應(yīng)的value值
boolean containsKey(Object key) -用于判斷參數(shù)指定的key值是否存在
boolean containsValue(Object value) -用于判斷參數(shù)指定的value是否存在
V get(Object key) -用于獲取參數(shù)key對應(yīng)的value值
Set<Map.Entry<K, V>> entrySet( ) -用于獲取Map集合的Set視圖
K getKey( ) -用于獲取調(diào)用對象的key值
V getValue( ) -用于獲取調(diào)用對象的value值
Set<K> keySet( ) -獲取Map集合中 key的Set視圖
代碼:package com.monkey1024.map;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class MapTest {
public static void main(String[] args) {
// 定義一個接口類型的引用指向 實現(xiàn)類的對象,形成多態(tài)
Map<String,String> m1=new HashMap<String,String> ();
//操作1: 向集合中添加元素
String val = m1.put("1", "one");
System.out.println("1.向集合中添加元素(\"1\", \"one\"): " val); //null
val=m1.put("2", "two");
System.out.println("1.向集合中添加元素(\"2\", \"two\"): " val); //null
val=m1.put("3", "three");
System.out.println("1.向集合中添加元素(\"3\", \"three\"): " val); //null
System.out.println();
// 操作2:若鍵值對已經(jīng)存在,相當于修改value的效果
val= m1.put("1", "eleven");
System.out.println("2.向集合中添加元素(\"1\", \"eleven\")");
System.out.println("若鍵值對已經(jīng)存在,否則返回之前key值對應(yīng)的value值");
System.out.println("打印value值: " val);
System.out.println();
// 操作3:判斷key值為 "1"的元素 是否存在
boolean b = m1.containsKey("1");
System.out.println("3.判斷key值為 \"1\"的元素 是否存在: " b);
System.out.println();
// 操作4:判斷value值為 "two"的元素 是否存在
b = m1.containsValue("two");
System.out.println("4.判斷value值為 \"two\"的元素 是否存在: " b);
System.out.println();
// 操作5:獲取 key值為 "3",對應(yīng)的 value值
String str = m1.get("3");
System.out.println("5.獲取 key值為 \"3\",對應(yīng)的 value值: " str);
System.out.println();
// 操作6: 刪除key值為"3"元素對應(yīng)的值
String remove = m1.remove("3");
System.out.println("6.刪除key值為\"3\"元素對應(yīng)的值: " remove);
System.out.println();
// 操作7: 將Map轉(zhuǎn)換為 Set,得到 Set的視圖
Set<Map.Entry<String, String>> s1 = m1.entrySet();
System.out.println("7.將Map轉(zhuǎn)換為 Set,得到 Set的視圖: " s1);
System.out.println();
// 操作8:打印Set視圖 中的每一個元素的 key 和 value
for(Map.Entry<String, String> me:s1) {
System.out.println("8.將Map轉(zhuǎn)換為 Set,得到 Set的視圖: " me.getKey() "," me.getValue());
}
System.out.println( );
// 操作9: 獲取map中的key組成的Set視圖
Set<String> s2 = m1.keySet();
System.out.println("9.獲取map中的key組成的Set視圖: " s2);
System.out.println();
// 操作10:打印集合中的所有key 和 value
for(String s:s2) {
System.out.println("10.打印集合中的所有key 和 value: " s "," m1.get(s));
}
}
} 結(jié)果:1.向集合中添加元素("1", "one"): null
1.向集合中添加元素("2", "two"): null
1.向集合中添加元素("3", "three"): null
2.向集合中添加元素("1", "eleven")
若鍵值對已經(jīng)存在,否則返回之前key值對應(yīng)的value值
打印value值: one
3.判斷key值為 "1"的元素 是否存在: true
4.判斷value值為 "two"的元素 是否存在: true
5.獲取 key值為 "3",對應(yīng)的 value值: three
6.刪除key值為"3"元素對應(yīng)的值: three
7.將Map轉(zhuǎn)換為 Set,得到 Set的視圖: [1=eleven, 2=two]
8.將Map轉(zhuǎn)換為 Set,得到 Set的視圖: 1,eleven
8.將Map轉(zhuǎn)換為 Set,得到 Set的視圖: 2,two
9.獲取map中的key組成的Set視圖: [1, 2]
10.打印集合中的所有key 和 value: 1,eleven
10.打印集合中的所有key 和 value: 2,two
|