因为下一个博客想写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集合的第二种遍历方式

第二种方式用到三个方法:

  1. Map集合的entrySet()方法
  2. Map.Entry对象的getKey()方法
  3. 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集合的遍历方式有几种?相关推荐

  1. Map集合的遍历方式

    1.Map集合的特点 Map集合每次存储两个元素,键不可重复,值可以重复. 2.遍历的方式 Map集合遍历方式1 得到所有的键存放在set集合中–KeySet() 遍历键所在的集合,得到每一个键. 通 ...

  2. Map集合的遍历(方式2)

    上一章节,我们刚才存储的元素都是成对出现的,所以我们把Map看成是一个夫妻对的集合 遍历思路: 获取所有结婚证的集合 遍历结婚证的集合,得到每一个结婚证 根据结婚证获取丈夫和妻子 转换Map集合的操作 ...

  3. java遍历一个map集合_Java遍历Map集合的四种方式

    Map 集合的遍历与 List 和 Set 集合不同.Map 有两组值,因此遍历时可以只遍历值的集合,也可以只遍历键的集合,也可以同时遍历.Map 以及实现 Map 的接口类(如 HashMap.Tr ...

  4. java遍历map集合传值,不同方式遍历Map集合(全)

    今天一朋友问我有关map集合的遍历问题,说真的当时真是懵了似懂非懂的,下面我通过查阅资料,具体内容整理如下: public static void main(string[] args){ map m ...

  5. [Java基础]Map集合的遍历

    Map集合是Java中非常常用的一个集合,通过Map集合可以实现对数据的快速检索和插入删除等操作:同样对Map集合的遍历也是十分重要的:如果你之前学过C++,那么对于Map的遍历操作可就不能像是C++ ...

  6. 第三次学JAVA再学不好就吃翔(part92)--Map集合的遍历

    学习笔记,仅供参考,有错必纠 Map集合的遍历 方法1(利用键找值) 由于Map集合中没有iterator方法,所以如果我们想要遍历Map,则需要先提取出键,拿到Set集合,再利用Set集合的iter ...

  7. 原生 遍历_迭代器模式统一集合的遍历方式

    今天来介绍迭代器模式(Iterator Design Pattern),它还有另一个名字,叫作游标模式(Cursor Design Pattern). 1,遍历集合元素 现在的高级语言(比如 C++, ...

  8. Java Map集合的详解

    参考自:Java Map集合的详解 (略有修改) 一,Map 如果程序中存储了几百万个学生,而且经常需要使用学号来搜索某个学生,那么这个需求有效的数据结构就是Map. Map是一种依照键(key)存储 ...

  9. 增强型for循环与Map集合的遍历

    Map接口的遍历有以下几种方法: 使用map.values()方法,先把value的值都放在一个Collection集合中. 使用map.entrySet()方法. 使用map.keySet()方法. ...

最新文章

  1. 执行前端测试的必要性
  2. ps - 按进程消耗内存多少排序
  3. 隐藏画质代码_【和平精英】变成恐怖精英?玩家在墙上发现了一幅隐藏的壁画!...
  4. 一个完整的网上商城的源码_黄冈微信分销商城系统-源码码网
  5. C#中巧用Lambda表达式实现对象list进行截取
  6. .NET分层登陆——机房收费系统再总结
  7. jzoj4804-[NOIP2016提高A组模拟9.28]成绩调研【指针,模拟】
  8. WatiN-Html元素及元素属性识别-扩展
  9. fscokopen 中执行超时 使用stream_set_timeout设置超时
  10. 语义分割系列3-SegNet(pytorch实现)
  11. JavaScript中阻止事件冒泡的浏览器兼容
  12. 所希望于劳工会的〔1〕
  13. restore,recover的区别
  14. 在VS中给源文件用文件夹分类/在VS中变更源文件路径
  15. 系统语言为繁体中文时适配APP
  16. 关于:win10应用商店下载东西时提示此安装被策略阻止,需请求管理员启用 Windows 更新(解决方案)
  17. 史上最BT的真实案例集
  18. zynqmp PL设备驱动编写
  19. html+css编写用户注册协议页面
  20. Pacemaker 安装与配置

热门文章

  1. 计算机同等学力申硕有哪些学校,同等学力申硕院校及专业有哪些呢
  2. 被华为任正非刷屏的一天,怎么能少了 GitHub 上的这个项目!
  3. 程序员的七种武器视频整理下载
  4. Intel DDR布线之Tabbed Routing
  5. 差异表达基因热图怎么看_【生信】憨憨版分析转录组基因表达差异(二)
  6. 识别电路画等效电路的几种方法
  7. 无锡设计类——CAD设计在机械制图中的优势
  8. 三维建模之曲面的连续性
  9. Java实现扫码二维码下载app流程
  10. 大数据告诉你,真正的白富美的生活是怎样的呢?