博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HashMap根据value删除元素
阅读量:6563 次
发布时间:2019-06-24

本文共 794 字,大约阅读时间需要 2 分钟。

  hot3.png

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

Map
map = new HashMap
(); 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")); 打印结果:

33
null

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

你可能感兴趣的文章
第13 章拦截器与事件(Interceptors and events)
查看>>
查询文章的上下篇Sql语句
查看>>
复制常用命令
查看>>
人,最先老去的,从来都不是容颜
查看>>
jumpGate部署
查看>>
使用 DrMemory 详细教程
查看>>
C语言strlen的一个问题
查看>>
TRUNCATE和DELETE有以下几点区别
查看>>
uboot学习之三-----uboot启动第一阶段--start.S之二
查看>>
规则引擎以及blaze 规则库的集成初探之一——规则引擎简介
查看>>
JavaScript学习笔记(二)
查看>>
C++中this的用法
查看>>
昨天看了一个大神的fix类,清晰了然
查看>>
剑指Offer:连续子数组的最大和
查看>>
LeetCode 117 Populating Next Right Pointers in Each Node II
查看>>
Russian Doll Envelopes
查看>>
深入理解javascript原型和闭包系列
查看>>
第1个实验:用汇编语言点亮一盏LED
查看>>
1 Maven简介
查看>>
mongodb的学习-5-概念解析
查看>>