zoukankan      html  css  js  c++  java
  • 遍历Map集合的另一种方式

    我们常用的遍历集合中key和value的方式是:

    Map<String,String>  map = new HashMap<String,String>();
    
    Set<String> mapSet = map.keySet();和Collection<String> c = map.values();

    方法,如果想把map集合的values转为List<String>集合可以使用下面的方法:

    Map<String, String> map = new HashMap<String, String>();
    		map.put("1", "aa");
    		map.put("2", "bb");
    		Set<String> keySet = map.keySet();
    	List<String> valList = new ArrayList<String>(map.values());
    

    在api中出提供了上面的方法取得map集合中的key和value外还提供了,map.entrySet();方法,下面看看下面的示例:

    public static void main(String[] args) {
    		Map<String, String> map = new HashMap<String, String>();
    		map.put("1", "aa");
    		map.put("2", "bb");
    		Set<String> keySet = map.keySet();
    		List<String> li = new ArrayList<String>(map.values());
    		
    		
    		Map<String,String[]> mapArr = new HashMap<String, String[]>();
    		String[] attStr = {"1","2"};
    		String[] attStr2 = {"3","4"};
    		mapArr.put("a", attStr);
    		mapArr.put("a", attStr2);
    		
    		// 第一种,map中的key没有相同的情况
    		 Iterator it = map.entrySet().iterator();
    		 while (it.hasNext()) {
    			 Map.Entry<String, String> entry = (Entry<String, String>) it.next();
    			 System.out.println(entry.getKey()+"************"+entry.getValue());
    		}
    		 for (Map.Entry<String, String> string : map.entrySet()) {
    			 System.out.println(string.getKey()+"----------"+string.getValue());
    		}
    		 
    		 // 第二种,map集合中key相同,value不同的情况
    		 Iterator itArr = mapArr.entrySet().iterator();
    		 while (itArr.hasNext()) {
    			Map.Entry<String, String[]> arrMap = (Entry<String, String[]>) itArr.next();
    			System.out.println(arrMap.getKey()+"0000"+arrMap.getValue()[0]);
    		}
    		 for (Map.Entry<String, String[]> string : mapArr.entrySet()) {
    			System.out.println(string.getKey()+"eeeeeee"+string.getValue()[0]);
    		}
    
    	}
    

    代码运行结果: 

     

    总结:

    使用:map.entrySet();方法当有相同的key时,只会输出最后一次put的值

  • 相关阅读:
    检查c# 内存泄漏
    条件请求与区间请求
    python排序算法
    webpack+react+redux+es6
    Wireshark命令行工具tshark
    Web的形式发布静态文件
    PyQT制作视频播放器
    DotNet二维码操作组件ThoughtWorks.QRCode
    给你讲个笑话,我是创业公司CEO
    分库分表总结
  • 原文地址:https://www.cnblogs.com/ablejava/p/5643446.html
Copyright © 2011-2022 走看看