Map.Entry使用详解
1.Map.Entry说明
Map是java中的接口,Map.Entry是Map的一个内部接口。
Map提供了一些常用方法,如keySet()、entrySet()等方法,keySet()方法返回值是Map中key值的集合;entrySet()的返回值也是返回一个Set集合,此集合的类型为Map.Entry。
Map.Entry是Map声明的一个内部接口,此接口为泛型,定义为Entry<K,V>。它表示Map中的一个实体(一个key-value对)。接口中有getKey(),getValue方法。
2.Map.Entry使用
你是否已经对每次从Map中取得关键字然后再取得相应的值感觉厌倦?使用Map.Entry类,你可以得到在同一时间得到所有的信息。标准的Map访问方法如下:
Set keys = map.keySet( );
if(keys != null) {
Iterator iterator = keys.iterator( );
while(iterator.hasNext( )) {
Object key = iterator.next( );
Object value = map.get(key);
;....
;}
}
然后,这个方法有一个问题。从Map中取得关键字之后,我们必须每次重复返回到Map中取得相对的值,这是很繁琐和费时的。
幸运的是,这里有一个更加简单的途径。Map类提供了一个称为entrySet()的方法,这个方法返回一个Map.Entry实例化后的对象集。接着,Map.Entry类提供了一个getKey()方法和一个getValue()方法,因此,上面的代码可以被组织得更符合逻辑。举例如下:
Set entries = map.entrySet( );
if(entries != null) {
Iterator iterator = entries.iterator( );
while(iterator.hasNext( )) {
Map.Entry entry =iterator.next( );
Object key = entry.getKey( );
Object value = entry.getValue();
;....
}
}
尽管增加了一行代码,我们却省略了许多对Map不必要的“get”调用。同时,提供给开发人员一个同时保持了关键字和其对应的值的类。Map.Entry同时也提供了一个setValue()方法,程序员可以使用它修改map里面的值。
文章转载于:http://www.cnblogs.com/guoxu/articles/1703393.html
eg:
Map<String,Object> map2=new HashMap<>();map2.put("111", "a");map2.put("122", "a");map2.put("333", "c");Set entries = map2.entrySet( );System.out.println("entry:"+entries);System.out.println("-----------");Set keys=map2.keySet();System.out.println(keys);if (keys!=null){for (Object s :keys) {System.out.println(s);System.out.println(map2.get(s));}}System.out.println("---------------");if (entries!=null){Iterator iterator=entries.iterator();while (iterator.hasNext()){Map.Entry entry= (Map.Entry) iterator.next();System.out.println("key:"+entry.getKey());System.out.println("value:"+entry.getValue());}}
Map.Entry使用详解相关推荐
- Java中Map的entrySet()详解 || Map.Entry的详解
Map中存放的元素均为键值对,故每一个键值对必然存在一个映射关系. Map中采用Entry内部类来表示一个映射项,映射项包含Key和Value Map.Entry的详解
- (7)Java数据结构--集合map,set,list详解
MAP,SET,LIST,等JAVA中集合解析(了解) - clam_clam的专栏 - CSDN博---有颜色, http://blog.csdn.net/clam_clam/article/det ...
- Java Map集合的详解
参考自:Java Map集合的详解 (略有修改) 一,Map 如果程序中存储了几百万个学生,而且经常需要使用学号来搜索某个学生,那么这个需求有效的数据结构就是Map. Map是一种依照键(key)存储 ...
- js数组中foEach和map的用法详解 jq中的$.each和$.map
数组中foEach和map的用法详解 相同点: 1.都是循环遍历数组(仅仅是数组)中的每一项. 2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项value, ...
- java 三种将list转换为map的方法详解
这篇文章主要介绍了java 三种将list转换为map的方法详解的相关资料,需要的朋友可以参考下 java 三种将list转换为map的方法详解 在本文中,介绍三种将list转换为map的方法: 1) ...
- STL 中map的用法详解
STL 中map的用法详解 Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可 ...
- C++ map和unordered_map详解
C++ map和unordered_map详解 官方文档链接 概述 C++中map和unordered_map提供的是一种键值对容器,在实际开发中会经常用到,它跟Python的字典很类似,所有的数 ...
- es6 map()和filter()详解【转】
本文转载自: https://www.cnblogs.com/zxyun/p/7019631.html 作者:zxyun 转载请注明该声明. 原文地址:http://www.zhangxinxu.co ...
- C++ STL容器 —— map/multimap 用法详解
C++ STL容器 -- map/multimap 用法详解 写在前面:近期正在学习C++的STL容器,因此在这里做一下日志记录,主要介绍一些容器基本成员函数的用法, 配上实际用例,并不涉及原理.但别 ...
最新文章
- 一个网卡设置多个IP作用
- 关于不同的MySQL复制解决方案概述
- 【总结】有三AI所有GAN相关学习资料汇总,有图文、视频、代码实战等......
- Leecode之翻转整数
- 一个WCF RESTSOAP Post例子
- windows平台下用CMake工具编译osg用法说明
- 解决前后端交互Long类型精度丢失的问题
- electron forge 好用吗_在优麒麟上使用 Electron 开发桌面应用
- 学习Haskell的一些资料
- 【正点原子MP157连载】 第二十一章 DMA实验-摘自【正点原子】STM32MP1 M4裸机CubeIDE开发指南
- java 条形码打印机_java使用佳博打印机打印条形码
- win7计算机锁频图片怎么设置,win7锁屏背景壁纸如何修改
- 兜兜转转解决office和visio不能同时安装的问题
- 如何申请email账号注册,如何批量注册申请邮箱?
- ios label内字体置顶_IOS_Vertically align UILabel文本置顶 | 学步园
- 匠心独运: python打造GUI图形小窗口
- 成功三大定律 重在厚积薄发!
- SAP LSMW 快照批量处理总账科目数据
- 华硕笔记本如何锁定计算机,华硕笔记本win10怎么快捷锁屏
- 用Python编写斐波那契数列(Fibonacci Sequence)
热门文章
- 华为拍月亮申请专利;魅族黄章回应李楠离职;GoLand 2019.2 Beta 发布 | 极客头条...
- 六维图见过么?Python 画出来了!
- Web 组件即将取代前端框架?!| 技术头条
- 华为小米入场,能拯救乐视互联网电视挖的坑吗?
- 程序员遇到什么样的工作状态应该果断跳槽走人?
- Chrome 新 UI 很“难看”,用户很生气
- 流行插件 jQuery 被曝存在漏洞达三年之久!
- Tomcat服务器搭建及测试教程(1),腾讯技术官发布的“神仙文档”火爆网络
- 第 2 章 设计模式七大原则
- 第 12 章 执行引擎