利用 Iterator 输出 Map 集合|学习笔记-阿里云开发者社区

开发者社区> 学堂小助手> 正文

利用 Iterator 输出 Map 集合|学习笔记

简介: 快速学习利用 Iterator 输出 Map 集合
+关注继续查看

开发者学堂课程【Java 高级编程利用 Iterator 输出 Map 集合】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/20/detail/420


利用 Iterator 输出 Map 集合


对于集合的输出而言,最标准的做法就是利用 Iterator 接口来完成,但是需要明确一点的是在 Map 集合里面并没有一个方法可以直接返回 Iterator 接口对象。

所以这种情况下就必须分析不直接提供 Iterator 接口实例化的方法的原因,下面对Collection 与 Map 集合的存储结构进行一个比较。

发现在 Map 集合里面保存的实际上是一组 Map.Entry 接口对象(里面包装的是 Key 与 Value),所以整个来讲 Map 依然实现的是单值的保存,这样在 Map 集合里面提供有一个方法“public Set Map.Entry<K,V>> entrySet()”,将全部的Map 集合转为 Set 集合。

图片28.png

经过分析可以发现如果要想使用 Iterator 实现 Map 集合的输出则必须按照如下步骤处理:

利用 Map 接口中提供的 entrySet() 方法将 Map 集合转为 Set集合

利用 Set 接口中的 iterator() 方法将 Set 集合转为 Iterator 接口实例

利用 Iterator 进行迭代输出获取每一组的 Map.Entry 对象,随后通过 getKey() 与getValue() 获取数据。


范例:利用 Iterator 输出 Map 集合

package cn.mldn.demo;

import java.util.HashMap;

import java.util.Iterator;

import java.uti1.Map;

import java.uti1.set;

public class JavaAPIDemo i

public static void main(String[ ] args ) throws Exception {

Map<string,Integer> map = new HashMap<String,Integer>();

map.put( "one", 1);

map.put( "two",2);

Set<Map.Entry<String,Integer>> set = map.entrySet() ; //将Map集合变为Set集合Iterator<Map.Entry<String,Integer>> iter = set.iterator( ) ;

while (iter.hasNext()) i

Map.Entry<String, Integer> me = iter.next() ;

system.out.print1n(me.getKey() + " = " + me.getValue());

}

}

}

虽然 Map 集合本身支持有迭代输出的支持,但是如果从实际的开发来开发来讲,Map 集合最主要的用法在于实现数据的 key 查找操作,另外需要提醒的是,如果现在不使用 Iterator 而使用 foreach 语法输出则也需要将 Map 集合转为 Set 集合。


范例:使用 foreach 输出 Map 集合

package cn.mldn. demo;

import java.util.HashMap;

import java.uti1.Iterator;

import java.util.Map;

import java.util.set;

public class JavaAPIDemo {

public static void main(String[ ] args) throws Exception i

Map<String, Integer> map = new HashMap<String, Integer>();

map.put( "one", 1);

map.put( "two",2);

Set<Map.Entry<string,Integer>> set = map.entrySet() ; //将Map集合变为Set集合

for (Map.Entry<String,_Integer> entry : set) {

system.out.printin(entry.getKey() + " = '" + entry.getvalue());

}

}

}

由于 Map 迭代输出的情况相对较少,所以对于此类的语法应该深入

理解一下,并且一定要灵活掌握。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
PO,VO,DAO,BO,POJO 之间的区别你懂吗?
value object:值对象。 通常用于业务层之间的数据传递,由new创建,由GC回收。
5 0
排名前 16 的 Java 工具类,哪个你没用过?
在Java中,实用程序类是定义一组执行通用功能的方法的类。 这篇文章展示了最常用的Java实用工具类及其最常用的方法。类列表及其方法列表均按受欢迎程度排序。数据基于从GitHub随机选择的50,000个开源Java项目。 希望您可以通过浏览列表来了解
7 0
方法的定义与使用(方法递归调用)|学习笔记
快速学习 方法的定义与使用(方法递归调用)
11 0
第一个 Java 程序|学习笔记
快速学习 第一个 Java 程序
7 0
程序逻辑控制(循环控制)|学习笔记
快速学习 程序逻辑控制(循环控制)
7 0
方法的定义与使用(方法重载)|学习笔记
快速学习 方法的定义与使用(方法重载)
7 0
10S
冬季实战营第一期:从零到一上手玩转云服务器的学习报告
训练营日期:2022年1月17日 - 2022年1月23日,通过前五日从零学习云服务器,还能领取限量版盲盒等奖品
7 0
解决Java- 错误: 找不到或无法加载主类 HelloWorld.java
针对初学者使用javac,java等命令编译class文件时出现的经典问题,提供解决思路和方法。
14 0
“冬季实战营第一期”之从零到一上手玩转云服务器——学习报告
动手实战、专家带练。由浅及深,逐渐提升动手实操能力。
21 0
1214
文章
0
问答
来源圈子
更多
技术图谱:由专家组参与技术图谱的绘制与编写,知识与实践的结合让开发者们掌握学习路线与逻辑,快速提升技能 电子书:电子书由阿里内外专家打造,供开发者们下载学习,更与课程相结合,使用户更易理解掌握课程内容 训练营:学习训练营 深入浅出,专家授课,带领开发者们快速上云 精品课程:汇集知识碎片,解决技术难题,体系化学习场景,深入浅出,易于理解 技能自测:提供免费测试,摸底自查 体验实验室:学完即练,云资源免费使用
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载