【Map】containsKey和containsValue使用案例(114)

containsKey() 是看有没有这个键,也就是有没有这个下标
containsValue() 是看有没有这个键值,也就是有没有这个值
比如
mp.add (10,20);
containsKey (10) 是 true
containsValue (10) 是 false
而containsValue (20) 是 true
区别就是:
前者看没有这个键(下标)后者有没有这个键值(值)

Demo案例


import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

/*
 *  containsKey() 是看有没有这个键,也就是有没有这个下标
	containsValue() 是看有没有这个键值,也就是有没有这个值
	比如
	mp.add (10,20);
	containsKey (10) 是 true
	containsValue (10) 是 false
	而containsValue (20) 是 true
	区别就是:
	前者看没有这个键(下标)后者有没有这个键值(值)

 */

public class day05 {
	public static void main(String[] args) {
		
		List<Map<String,Object>> list = new ArrayList<>();
		Map<String,Object> map1 = new HashMap<>();
		map1.put("region","西安");
		map1.put("num",3.3);
		Map<String,Object> map2 = new HashMap<>();
		map2.put("region","上海");
		map2.put("num",4.3);
		Map<String,Object> map3 = new HashMap<>();
		map3.put("region","北京");
		map3.put("num",5.4);
		Map<String,Object> map4 = new HashMap<>();
		map4.put("region","西安");
		map4.put("num",6.4);
		Map<String,Object> map5 = new HashMap<>();
		map5.put("region","西安");
		map5.put("num",6.1);
		Map<String,Object> map6 = new HashMap<>();
		map6.put("region","北京");
		map6.put("num",6.4);
		list.add(map1);
		list.add(map2);
		list.add(map3);
		list.add(map4);
		list.add(map5);
		list.add(map6);	
		
		System.out.println("list:"+list);
		
	    Map<String,Object> regionMap = new HashMap<>();	
		
        for (int i = 0; i < list.size(); i++) {
		     String num = String.valueOf(list.get(i).get("num"));
		     String region = String.valueOf(list.get(i).get("region")).trim();
		     if(!num.contains(".")){
		         list.get(i).put("num","0.0");
		     }
		     String num2 = String.valueOf(list.get(i).get("num"));
		     // 如果regionMap已经存在List中的map,则value值相加;否则将List中的map添加到regionMap中;
		     if(regionMap.containsKey(region)) {
		    	String key = region;
		    	String value = String.valueOf(regionMap.get(key)); 
		    	regionMap.put(region, Double.parseDouble(value) + Double.parseDouble(num2));
		     }
		     else {
		    	 regionMap.put(region, num2);
		     }
		}
        System.out.println("regionMap:"+regionMap);
        
	}
}

测试输出:

list:[{num=3.3, region=西安}, {num=4.3, region=上海}, {num=5.4, region=北京}, {num=6.4, region=西安}, {num=6.1, region=西安}, {num=6.4, region=北京}]
regionMap:{上海=4.3, 西安=15.799999999999999, 北京=11.8}

你可能感兴趣的:(java,ListMap,windows,microsoft)