HashMap根据value删除元素

本文澄清了Java中Map数据结构删除元素的一个常见误区,并提供了正确的删除方法。文章通过示例程序展示了如何避免错误地尝试通过value来删除元素,而应该通过key进行删除。

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

1.首先声明,如果想根据value删除map中的元素,使用map.remove(value)这个方法是错误的、 可以使用以下一段程序验证之:

<!-- lang: java -->
            Map<String, String> map = new HashMap<String, String>();
	map.put("1", "11");
	map.put("2", "22");
	map.put("3", "33");
	map.put("4", "44");
	System.out.println(map.get("3"));
	// 显然map.remove方法的参数是key,不是value
	map.remove("33");
	System.out.println(map.get("3"));

打印结果:

33

33

所以,执行的remove方法没起到删除元素的作用。 究其原因,可以看下remove方法的api对该方法参数的解释 :Parameters: key key whose mapping is to be removed from the map, 意思是大概要从map中删除元素的key,即参数不是value,而是key, 如果执行map.remove("3"), 程序打印结果就是:

33

null

2.所以直接使用上面方法不对,这是一个误区。 可以使用以下方法: Collection<String> col = map.values(); System.out.println(map.get("3")); col.remove("33"); System.out.println(map.get("3")); 打印结果:

<!-- lang: java -->
33
<!-- lang: java -->
               null

转载于:https://my.oschina.net/beanGo/blog/270779

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值