1. 程式人生 > >java:Map集合的編歷

java:Map集合的編歷

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上海市...這個問題沒有解決
	}
}