【java】Map集合的遍历方式有几种?
因为下一个博客想写Hashtable集合下的一个子类Properties集合,但是Map集合的遍历方式又有点遗忘了。。。。。。。。。。。
下面通过API来复习一下:
文章目录
- 1. Map集合的第一种遍历方式
- 2. Map集合的第二种遍历方式
总的来说Map集合的遍历方式应该有两种,细分下来的话有四种,这里分为两种来看。
1. Map集合的第一种遍历方式
第一种方式用到两个方法:keySet()方法和get(Object key)方法
实现步骤:
1.使用Map集合的keySet()方法,把Map集合所有的key取出来,存储到一个Set集合中
2.遍历Set集合获取Map集合的每一个key
3.通过Map集合的get(key)方法,通过key找到value
public class HashMapDemo
{public static void main(String[] args){//创建HashMap集合HashMap<String,Integer> map = new HashMap<String,Integer>();//向Map集合中添加对象map.put("郑爽", 168);map.put("杨洋", 180);map.put("张恒", 178); //1.使用Map集合的keySet()方法,把Map集合所有的key取出来,存储到一个Set集合中Set<String> set = map.keySet();//2.遍历Set集合获取Map集合的每一个key,使用迭代器遍历Iterator<String> it = set.iterator();while(it.hasNext()){String key = it.next();//3.通过Map集合的get(key)方法,通过key找到valueInteger value = map.get(key);System.out.println(key+"...."+value); }//2.遍历Set集合获取Map集合的每一个key,使用增强for遍历for(String key:set){//3.通过Map集合的get(key)方法,通过key找到valueInteger value = map.get(key);System.out.println(key+"....."+value);}}
}
注意:Mapji集合没有迭代器,但是使用keySet()方法后得到的Set集合,可以使用迭代器。
public class MapDemo2
{public static void main(String[] args){Map<String,String> map = new HashMap<String,String>();map.put("xiaoqing","beijiang");map.put("xiaoinh","sahnghai");map.put("liuyi","nanjing");map.put("huhua","anhui");//keySet()取出所有的键并存储到集合中Set<String> keySet = map.keySet();//Map集合没有迭代器,但是将Map集合转成Set集合后可使用迭代器for (Iterator<String> iterator = keySet.iterator(); iterator.hasNext();){String key = iterator.next();String value = map.get(key);System.out.println(key+":"+value); }}
}
2. Map集合的第二种遍历方式
第二种方式用到三个方法:
- Map集合的entrySet()方法
- Map.Entry对象的getKey()方法
- Map.Entry对象的getValue()方法
Map集合API:
Map.Entry<K,V>接口的API:
Map.Entry<K,V>:在Map接口中有一个内部接口Entry
作用:当Map集合一创建,那么就会在Map集合中创建一个Map.Entry对象,用来记录键和值(键值对对象)
实现步骤:
1.使用Map集合中的方法entrySet(),把Map集合中的多个Entry对象取出来,存储到一个Set集合中。
2.遍历Set集合获取每一个Entry对象
3.使用Entry对象中的方法getKey()和getValue()方法获取键与值
public class HashMapDemo2
{public static void main(String[] args){//创建HashMap集合HashMap<String,String> map = new HashMap<String,String>();//向Map集合中添加对象map.put("郑爽","张恒");map.put("谢霆锋","王菲");map.put("马伊琍","文章"); //1.使用Map集合中的方法entrySet(),把Map集合中的多个Entry对象取出来,存储到一个Set集合中Set<Map.Entry<String,String>> set = map.entrySet();//2.遍历Set集合获取每一个Entry对象Iterator<Map.Entry<String,String>> it = set.iterator();while(it.hasNext()){Map.Entry<String, String> entry = it.next();//3.使用Entry对象中的方法getKey()和getValue()方法获取键与值String key = entry.getKey();String value = entry.getValue();System.out.println(key+"...."+value);}for(Map.Entry<String, String> entry:set){//3.使用Entry对象中的方法getKey()和getValue()方法获取键与值String key = entry.getKey();String value = entry.getValue();System.out.println(key+"...."+value);}}
}
【java】Map集合的遍历方式有几种?相关推荐
- Map集合的遍历方式
1.Map集合的特点 Map集合每次存储两个元素,键不可重复,值可以重复. 2.遍历的方式 Map集合遍历方式1 得到所有的键存放在set集合中–KeySet() 遍历键所在的集合,得到每一个键. 通 ...
- Map集合的遍历(方式2)
上一章节,我们刚才存储的元素都是成对出现的,所以我们把Map看成是一个夫妻对的集合 遍历思路: 获取所有结婚证的集合 遍历结婚证的集合,得到每一个结婚证 根据结婚证获取丈夫和妻子 转换Map集合的操作 ...
- java遍历一个map集合_Java遍历Map集合的四种方式
Map 集合的遍历与 List 和 Set 集合不同.Map 有两组值,因此遍历时可以只遍历值的集合,也可以只遍历键的集合,也可以同时遍历.Map 以及实现 Map 的接口类(如 HashMap.Tr ...
- java遍历map集合传值,不同方式遍历Map集合(全)
今天一朋友问我有关map集合的遍历问题,说真的当时真是懵了似懂非懂的,下面我通过查阅资料,具体内容整理如下: public static void main(string[] args){ map m ...
- [Java基础]Map集合的遍历
Map集合是Java中非常常用的一个集合,通过Map集合可以实现对数据的快速检索和插入删除等操作:同样对Map集合的遍历也是十分重要的:如果你之前学过C++,那么对于Map的遍历操作可就不能像是C++ ...
- 第三次学JAVA再学不好就吃翔(part92)--Map集合的遍历
学习笔记,仅供参考,有错必纠 Map集合的遍历 方法1(利用键找值) 由于Map集合中没有iterator方法,所以如果我们想要遍历Map,则需要先提取出键,拿到Set集合,再利用Set集合的iter ...
- 原生 遍历_迭代器模式统一集合的遍历方式
今天来介绍迭代器模式(Iterator Design Pattern),它还有另一个名字,叫作游标模式(Cursor Design Pattern). 1,遍历集合元素 现在的高级语言(比如 C++, ...
- Java Map集合的详解
参考自:Java Map集合的详解 (略有修改) 一,Map 如果程序中存储了几百万个学生,而且经常需要使用学号来搜索某个学生,那么这个需求有效的数据结构就是Map. Map是一种依照键(key)存储 ...
- 增强型for循环与Map集合的遍历
Map接口的遍历有以下几种方法: 使用map.values()方法,先把value的值都放在一个Collection集合中. 使用map.entrySet()方法. 使用map.keySet()方法. ...
最新文章
- 执行前端测试的必要性
- ps - 按进程消耗内存多少排序
- 隐藏画质代码_【和平精英】变成恐怖精英?玩家在墙上发现了一幅隐藏的壁画!...
- 一个完整的网上商城的源码_黄冈微信分销商城系统-源码码网
- C#中巧用Lambda表达式实现对象list进行截取
- .NET分层登陆——机房收费系统再总结
- jzoj4804-[NOIP2016提高A组模拟9.28]成绩调研【指针,模拟】
- WatiN-Html元素及元素属性识别-扩展
- fscokopen 中执行超时 使用stream_set_timeout设置超时
- 语义分割系列3-SegNet(pytorch实现)
- JavaScript中阻止事件冒泡的浏览器兼容
- 所希望于劳工会的〔1〕
- restore,recover的区别
- 在VS中给源文件用文件夹分类/在VS中变更源文件路径
- 系统语言为繁体中文时适配APP
- 关于:win10应用商店下载东西时提示此安装被策略阻止,需请求管理员启用 Windows 更新(解决方案)
- 史上最BT的真实案例集
- zynqmp PL设备驱动编写
- html+css编写用户注册协议页面
- Pacemaker 安装与配置