List<Map>与Map合并与Map遍历

List与Map合并

 /**
 * list 存储 =》 [{NO:"01",ID:"1001"},{NO:"02",ID:"1002"}]
 * map存储 =》[{ID:"1002"},{NAME:"02"},{sex:"女"}]
 * ID为唯一值,根据ID来合并map值
 * 得到结果为:list=》[{NO:"01",ID:"1001"},{NO:"02",ID:"1002"},{NAME:"02"},{sex:"女"}]
 */
 List list2 = new ArrayList(); //用另外一个list集合来保存数据
 for (int i = 0; i < list.size(); i++) {
	Map getMap=new HashMap();
	Map data=(HashMap) list.get(i);
	String NO= String.valueOf(data.get("NO"));	
	String ID=String.valueOf(data.get("ID"));
	//根据ID来匹配是否
	getMap.put("NO", NO);
	getMap.put("ID", ID);
	for(Map.Entry<String,String> entry : map:entrySet(){
		String key = entry.getKey();
		String value = entry.getValue();
		if(key.equals("ID")){  //key.equals("ID")
			if(key.equals(ID){
				getMap.putAll(map); //putAll : 添加map全部数据
				list2.add(getMap);		
			}
		}
	}	
}

Map遍历的几种方式

  Map<String,String> map=new HashMap<String,String>();  
  //用for循环
  for(Map.Entry<String, String> entry:map.entrySet()){  
       String key= entry.getKey().toString();    //entry.getKey() 获取key值
	   String value=entry.getValue().toString();	//entry.getValue()  获取value值	   
  }
  //用迭代
  Set set = map.entrySet();       
  Iterator i = set.iterator();       
  while(i.hasNext()){    
      Map.Entry<String, String> entry=(Map.Entry<String, String>) i.next();  
      //entry.getKey()  获取key
      //entry.getValue()  获取value
  }  
  //用entrySet迭代
  // Iterator i =map.entrySet().iterator();
  Iterator<Map.Entry<String,String>> i=map.entrySet().iterator();       
  //长度: map.entrySet().size()   
  while(i.hasNext()){  
      //Map.Entry entry = (Map.Entry)i.next(); 
      Map.Entry<String,String> entry=it.next();        
      String  key=entry.getKey().toString();         
      String  value=entry.getValue().toString();         
      //entry.getKey()  获取key
      //entry.getValue()  获取value               
  } 

如果只需要map的key或者value,用map的keySet或values方法无疑是最方便的

      /**
       * 获取key的值
       */
       for(Object key : getSeriesMap.keySet()){
			Object value = getSeriesMap.get(key);
			System.out.println("value1:");
			System.out.println(value);
		}
		
		for(Object value : getSeriesMap.values()){
			System.out.println("value2:");
			System.out.println(value.toString());
		}```

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值