java:Map集合的編歷
阿新 • • 發佈:2018-12-04
import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.Set; /*1, 使用map存放 以下 內容: 拼音 -- 省份中文 ; 並把它們遍歷並打印出來 【目的】 理解什麼是map; 能使用map存放集合 * 2,使用map存放 以下內容: 省份 -- 市區(一個省份有一個或多個市區)【字串陣列】;之後, * 查一下該map中是否有 杭州 這個省份,如果有的話,把它相應的市區打印出來; 【目的】1.理解map中的泛型 2.理解map的其他呼叫方式:包括key 或value中是否有相應值 3.理解如何根據map的key值來獲取 value值 */ public class list1{ public static void main(String[] args){ Map<String,Province> province = new HashMap<String,Province>();//新建一個map,一個存的是物件,一個存的是拼音 //建幾個省份和市,存進map裡面 String[][] zjarr= {{"浙江"},{"杭州","溫州","寧波"}}; String[][] sharr={{"上海市"},{"徐匯","靜安","普陀"}};//定義兩個二維陣列 Province p = new Province(12,zjarr);//省份是string 市有多個,應該是有個陣列的形式 Province p1 = new Province(15,sharr); //編歷這個map //把物件加到map裡面 province.put("zj",p);//key value province.put("sh",p1); p.arrlist(province,"杭州");//ent是一個map 最後一步沒有實現好 } } class Province { int num;//省份有名字 //有城市 String[][] city; public Province(int num,String[][] city){ //寫一個公開的構造器 this.num= num; this.city= city; } public int getNum() { return num; } public void setNum(int num) { this.num = num; } public String[][] getCity() { return city; } public void setCity(String[][] city) { this.city = city; } /**編歷map的方法 * @param map * @return */ public void arrlist(Map map,String ss){ String s3=null; Set entry = map.entrySet();//有了map,把map給一個新的entry Iterator ite = entry.iterator();//再把entry給迭代器 while(ite.hasNext()){//取得一個值,再next看有沒有下一個值 Entry obj= (Entry) ite.next();//轉為entry取值就不會報錯 Province pro =(Province) obj.getValue(); s3=arraylist(pro.getCity());//把取出來的全部的資訊編歷數組給s3 System.out.println(s3); } } public String arraylist(String[][] ss){//二維陣列 String s1 =null; for(String[] s:ss){//編歷一次 for(int i =0;i<s.length;i++){ //System.out.print(); s1+=s[i];//每編歷一次,加到s1裡面去 } System.out.println(s1); } return s1;//取出來的結果有一個 null上海市...這個問題沒有解決 } }