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= {{"zj"},{"hz","xz","nb"}};
String[][] sharr={{"sh"},{"xh","ja","pt"}};//定义两个二维数组
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,"hz");//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上海市...这个问题没有解决
}
}