文档章节

HashMap根据value删除元素

beanGou
 beanGou
发布于 2014/05/29 19:12
字数 258
阅读 315
收藏 0

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

© 著作权归作者所有

共有 人打赏支持
beanGou
粉丝 7
博文 87
码字总数 19525
作品 0
杭州
程序员
jdk容器之HashMap

一、HashMap简介 原博客地址:http://www.cnblogs.com/tstd/p/5055286.html hash就是通过散列算法,将一个任意长度关键字转换为一个固定长度的散列值,由于hash函数是一个压缩映射,所以可能...

紫韵
2016/04/07
41
0
jdk1.6集合源码阅读之HashMap

本来ArrayList和LinkedList弄完,应该去查看set接口的一些实现了,比如HashSet和TreeSet的实现了,但是看了下HashSet的底层存储是HashMap,所以决定先看HashMap的源码,看完再看HashSet的源码...

双月通天
2016/08/26
11
0
java集合学习笔记--二维集合HashMap

一.Map集合 在二维集合中,使用最多的是java.util.HashMap HashMap类提供了二维集合的功能 构造函数 public HashMap() HashMap类中,可以为每个对象指定一个key值。如果为两个不同的对象指定...

carlos
2014/03/26
0
0
JDK源码分析(三)——HashMap 上(基于JDK7)

目录 HashMap概述 内部字段及构造方法 存储元素 扩容 取出元素 删除元素 判断 总结 HashMap概述   前面我们分析了基于数组实现的ArrayList和基于双向链表实现的LinkedList,它们各有优缺点:...

默数至天亮
07/28
0
0
Java关于数据结构的实现:散列

关于作者 郭孝星,程序员,吉他手,主要从事Android平台基础架构方面的工作,欢迎交流技术方面的问题,可以去我的Github提issue或者发邮件至guoxiaoxingse@163.com与我交流。 文章目录` 一 ...

郭孝星
2017/09/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

关于编程,你的练习是不是有效的?

最近由于工作及Solution项目的影响,我在重新学习DDD和领域建模的一些知识。然后,我突然就想到了这个问题,以及我是怎么做的? 对于我来说,提升技能的项目会有四种: 纯兴趣驱动的项目。即...

问题终结者
28分钟前
1
0
打开eclipse出现an error has occurred see the log file

解决方法: 1,打开eclipse安装目录下的eclipse.ini文件; 2,打开的文本文件最后添加一行 --add-modules=ALL-SYSTEM 3,保存重新打开Eclipse。...

任梁荣
昨天
4
0
搞定Northwind示例数据库,无论哪个版本的SQLServer都受用

Northwind数据库 从这里可以找到突破口: http://social.msdn.microsoft.com/Forums/zh-CN/Vsexpressvb/thread/8490a1c6-9018-40c9-aafb-df9f79d29cde 下面是MSDN: http://msdn2.microsoft......

QQZZFT
昨天
1
0
mysql主从同步,安装配置操作

准备 两台mysql服务,我这里准备了如下: 主库:192.168.176.128 从库:192.168.176.131 如何在Linux上安装mysql服务,请看https://blog.csdn.net/qq_18860653/article/details/80250499 操作...

小致dad
昨天
4
0
Redis的“死键”问题

大规模的数据库存储系统中,数据的生命周期管理是很有必要的;从业务角度发现过期数据,数据归档和数据碎片整理等。以MySQL为例,1个运行很久的TB级MySQL实例中,极有可能数百GB的数据,对业...

IT--小哥
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部