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

本文通过示例介绍了Java中HashMap类的containsKey()和containsValue()方法的区别,以及如何在遍历List时使用这两个方法合并Map中的值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KevinDuc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值