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= {{"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上海市...这个问题没有解决
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值