集合框架--Map集合的一些基本用法
阿新 • • 發佈:2018-12-13
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); } } }