1. 程式人生 > >集合框架--Map集合的一些基本用法

集合框架--Map集合的一些基本用法

package cn.itcast.api.a.map;

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

public class mapDemo {

	public static void main(String[] args) {
/*儲存中英文星期集合
 * 使用map集合
 * 
 * **/
//	先定義泛型
		Map<String , String > map  = new HashMap<String , String>();
		
		System.out.println("---------------新增元素--------------");
		
//		System.out.println(map.put("星期一", "Mon"));
		System.out.println(map.put("星期一", "Monday"));//鍵相同值覆蓋輸出Monday  put方法會返回舊值
		map.put("星期二", "Tuesday");
		map.put("星期三", "Wednesday");
		map.put("星期四", "Thursday");
		map.put("星期五", "Friday");
		map.put("星期六", "Saturday");
		map.put("星期日", "Sunday");
		System.out.println(map);

		System.out.println("---------------通過給定的鍵獲取值--------------");
		String value = map.get("星期八");//如果鍵不存在返回null。通過此判斷鍵是否存在
		String value1 = map.get("星期一");
		System.out.println("value = "+value);
		System.out.println("value1 = "+value1);
		System.out.println("---------------根據鍵刪除元素--------------");
		String s = map.remove("星期一");//獲取對應鍵的值並且將該鍵值對從map集合中刪除
		System.out.println("s = "+ s);
		System.out.println(map);
		System.out.println("---------------獲取所有的鍵:keySet方法獲取使用迭代器--------------");
//		既然是所有的鍵,那麼返回值應該是 一個集合而且是一個單列集合
//		因為map集合必須保證鍵的唯一性所以我們選用set集合
//		從API中我們發現了一個keySet()方法
		Set<String> keySet = map.keySet();
		for (Iterator<String> it = keySet.iterator(); it.hasNext();) {
			String  key= it.next();
			String  value3 = map.get(key);//通過鍵獲取對應的值
			System.out.println(key+"----"+value3); 
		}
		System.out.println("----獲取所有的鍵:使用forreach迴圈進行遍歷-----");
			for(String key : keySet){
				System.out.println(key+"-----"+map.get(key));
			}
		System.out.println("---------------獲取所有的鍵:entrySet方法獲取鍵--------------");
/*將map集合中的對映關係儲存到set集合中
 * 對映關係:其實就是指建和值的對應關係
 * 對映關係的型別  Map.Entry
 * 
 * ***/		
	Set<Map.Entry<String , String>> entrySet = map.entrySet();
//	diedaiqi
	Iterator<Entry<String, String>> it = entrySet.iterator();
//遍歷set中的對映關係物件
	while(it.hasNext()){
		Map.Entry<String, String> me = it.next();//取到了對映關係物件
//		獲取鍵
		String key = me.getKey();
		
//		獲取值
		
		String value4 = me.getValue();
		
		System.out.println(key+"--------"+value4);
	}
	/**總結 : map集合中沒有迭代器,取出元素的方式: 將map集合轉成單列集合在使用單列集和的迭代器
	 * map集合也不能直接被foreach迴圈遍歷
	 * 
	 * *
	 * */
	System.out.println("---------------獲取所有的鍵:values()方法獲取所有值--------------");
//	因為值不需要保證唯一性(所以不能通過值獲取鍵) 所以返回值是collection
//	姓名---歸屬地  對應關係獲取所有的歸屬地 values();
//	獲取所有的英文星期
	Collection<String> values = map.values();
	for (String value5 : values) {
		System.out.println("value5:"+value5);
	}
	
	}

}