Java基礎學習筆記--常用API之HashMap

package com.common.api;

import java.util.Map;
import java.util.Set;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;

/*
 * 	Map 集合的基本特點
 * 		1、該集合存儲鍵值對,一對一對存儲,而且鍵值不能重複
 * 		2、一個映射不能包含重複的鍵
 * 
 * 	Map 功能函數:
 * 		1、添加
 * 			V put(K key, V value) 將指定的值與該映射中的指定鍵相關聯(可選操作)。 
 * 								  注意:put方法返回key對應的原來的值,添加時如果出現
 * 									相同的鍵,則後添加的值會覆蓋之前的值,並將之前的值返回
 * 			void putAll(Map<? extends K,? extends V> m) 將指定地圖的所有映射覆制到此映射(可選操作)。  
 * 		2、刪除
 * 			void clear() 從該地圖中刪除所有的映射(可選操作)。 
 * 			V remove(Object key) 如果存在(從可選的操作),從該地圖中刪除一個鍵的映射。  
 * 		3、判斷
 * 			boolean containsKey(Object key) 如果此映射包含指定鍵的映射,則返回 true 。
 * 			boolean containsValue(Object value) 如果此地圖將一個或多個鍵映射到指定的值,則返回 true 。 
 * 			boolean equals(Object o) 將指定的對象與此映射進行比較以獲得相等性。   
 * 			boolean isEmpty() 如果此地圖不包含鍵值映射,則返回 true 。   
 * 		4、獲取
 * 			V get(Object key) 返回到指定鍵所映射的值,或 null如果此映射包含該鍵的映射。  
 * 			int size() 返回此地圖中鍵值映射的數量。  
 * 			Collection<V> values() 返回此地圖中包含的值的Collection視圖。  
 * 			Set<Map.Entry<K,V>> entrySet() 返回此地圖中包含的映射的Set視圖。  
 * 											這種數據類型就是Map.Entry
 * 			Set<K> keySet() 返回此地圖中包含的鍵的Set視圖。  Set集合具有迭代器,所以可以迭代取出所有值
 * 		5、修改
 * 			default V replace(K key, V value) 只有當目標映射到某個值時,才能替換指定鍵的條目。  
 * 
 * 		Map
 * 		 |----Hashtable  底層是哈希表數據結構,不可以存入null鍵值,該集合是線程同步的
 * 		 |----HashMap	   底層是哈希表數據結構,並允許使用null鍵值,該集合是線程不同步的
 * 		 |----TreeMap	 底層是二叉樹數據結構,線程不同步,可以用於給map集合中的鍵進行排序
 * 						和TreeSet很像,其實TreeSet底層就是使用了TreeMap的集合
 * 
 * 		Map 集合取出原理:將Map轉換爲Set,然後使用Set集合的迭代器取出
 * 	
 * 	Map 擴展知識
 * 		map集合被使用是因爲具備映射關係
 */
public class MapDemo {
	public static void method_map01()
	{
		Map<String,String> map=new HashMap<String,String>();
		System.out.println("put 第一次返回的值:"+map.put("01","zhangsan"));
		System.out.println("put 第二次返回的值:"+map.put("01","zhangsan01"));
		map.put("02","lisi");
		map.put("03","wangwu");
		System.out.println("containsKey:"+map.containsKey("01"));
		System.out.println("remove:"+map.remove("01"));
		System.out.println(map);
		System.out.println("get:"+map.get("02"));
		map.put(null,"null");
		System.out.println("get null :"+map.get("null"));
		map.put("04",null);
		System.out.println("get null key:"+map.get("04"));
		Collection<String> a=map.values();
		System.out.println(a);
		
		Set<String> keySet=map.keySet();
		Iterator<String> it=keySet.iterator();
		while(it.hasNext())
		{
			String key=it.next();
			System.out.println("key :"+key);
			System.out.println("value :"+map.get(key));
		}
		
		Set<Map.Entry<String,String>> entrySet=map.entrySet();
		Iterator<Map.Entry<String,String>> it1=entrySet.iterator();
		while(it1.hasNext())
		{
			Map.Entry<String,String> me=(Map.Entry) it1.next();
			String key=me.getKey();
			String value=me.getValue();
			System.out.println("key:"+key+" value: "+value);
		}
	}
	public static void main(String[] args) {
		// TODO Auto-generated metho d stub
		method_map01();
	}
}

執行結果爲:

put 第一次返回的值:null
put 第二次返回的值:zhangsan
containsKey:true
remove:zhangsan01
{02=lisi, 03=wangwu}
get:lisi
get null :null
get null key:null
[null, lisi, wangwu, null]
key :null
value :null
key :02
value :lisi
key :03
value :wangwu
key :04
value :null
key:null value: null
key:02 value: lisi
key:03 value: wangwu
key:04 value: null
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章