Java中Map遍历的四种方式

 如果同时需要key和value推荐使用entrySet(第一种);
如果只是获取key,或者value,推荐使用keySet或者values方式(第二种);
如果需要在遍历过程中删除元素推荐使用Iterator(第三种);
如果需要在遍历过程中增加元素,可以新建一个临时map存放新增的元素,等遍历完毕,再把临时map放到原来的map中。
 
// 循环遍历Map的4中方法
Map<String, String> map = new HashMap<String, String>();
map.put("牛郎", "织女");
map.put("项羽", "虞姬");
/**
* 1. entrySet遍历,在键和值都需要时使用(最常用)推荐,尤其是容量大时
*/
System.out.println("第一种:map.entrySet()遍历");
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue());
}
/**
* 2. 通过keySet或values来实现遍历,性能略低于第一种方式
*/
System.out.println("\n第二种:map.keySet()或map.values()遍历");
// 遍历map中的键
for (String key : map.keySet()) {
System.out.println("key = " + key);
}
// 遍历map中的值
for (String value : map.values()) {
System.out.println("key = " + value);
}
// 同时拿到key和value值:二次取值
for (String key : map.keySet()) {
System.out.println("key= " + key + " and value= " + map.get(key));
}
/**
* 3. 使用Iterator遍历
*/
System.out.println("\n第三种:Iterator方式遍历");
Iterator<Entry<String, String>> it = map.entrySet().iterator();
while (it.hasNext()) {
Entry<String, String> entry = it.next();
System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue());
}
/**
* 4. java8 Lambda
*/
// java8提供了Lambda表达式支持,语法看起来更简洁,可以同时拿到key和value,
// 不过,经测试,性能低于entrySet,所以更推荐用entrySet的方式
System.out.println("\n第四种:map.forEach方式遍历");
map.forEach((key, value) -> {
System.out.println(key + ":" + value);
});
控制台遍历结果如下:

第一种:map.entrySet()遍历
key = 项羽, value = 虞姬
key = 牛郎, value = 织女

第二种:map.keySet()或map.values()遍历
key = 项羽
key = 牛郎
key = 虞姬
key = 织女
key= 项羽 and value= 虞姬
key= 牛郎 and value= 织女

第三种:Iterator方式遍历
key = 项羽, value = 虞姬
key = 牛郎, value = 织女


第四种:map.forEach方式遍历
项羽:虞姬
牛郎:织女

Js中Map遍历的三种方式

//遍历map方法一
for(var key in map){
console.log("遍历map方法一属性:" + key + ",值:" + map[key]);
    <%-- 遍历一次结束 --%>
    return;
}
//遍历map方法二
$.each(map,function(key,value){
console.info("遍历map方法二属性: " + key + ",值: " + value );
})
//遍历map方法三
$.map(map,function(value,key){
console.log("遍历map方法三属性:" + key + ",值:" + value);
});

Map的使用及遍历方式的更多相关文章

  1. Map 的四种遍历方式

    Map 的四种遍历方式 import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class ...

  2. map的四种遍历方式

    map是Java中非常常用的一种数据结构,但map不同于set和list都继承自Collection接口. 所以map没有实现Collection的Iterator 方法,自身没有迭代器来遍历元素. ...

  3. Map的两种遍历方式

    ********************************************************************************* ****************** ...

  4. java Map的四种遍历方式

    1.这是最常见的并且在大多数情况下也是最可取的遍历方式,在键值都需要时使用. Map<Integer, Integer> map = new HashMap<Integer, Int ...

  5. Java中Map的4种遍历方式

    第一种方式:这是平常用的最多也最可取的一种遍历方式. for (Map.Entry<String, Object> entry : map.entrySet()) { System.out ...

  6. Map集合的六种遍历方式

    学习目标: 熟练掌握Map的遍历方式 例题: 需求:遍历Map集合 代码如下: package com.yy.object.test.test_collection; import java.util ...

  7. map的4种遍历方式

            System.out.println("key= "+ key + " and value= " + map.get(key));    }   ...

  8. Java中Map常用方法总结以及遍历方式的汇总

    一.整理: 看到array,就要想到角标. 看到link,就要想到first,last. 看到hash,就要想到hashCode,equals. 看到tree,就要想到两个接口.Comparable, ...

  9. Map的三种遍历方式

    对于Map的三种方式遍历 1.keySet() 2.values() 3.entrySet()三种方式得到Set之后,都可以使用 foreach或者iterator, 不能使用for,因为数据结构决定 ...

随机推荐

  1. IOS上的 Audio Memos SE 如何分享和传输录音到电脑?

    Audio Memos SE 是 Audio Memos 的精简版 ,顾名思义就是少了很多实用功能.当初下载这个就是因为广告比较少一些,没有全屏幕的广告. 好了,录了音,想分享和传到电脑要怎么弄呢? ...

  2. nload 安装和使用

    nload是一个很小巧的工具,用来监控当前系统的网速 安装 MAC brew install nload Linux 下载地址:https://sourceforge.net/projects/nlo ...

  3. 大数据(bigdata)练习题

    1.在HDFS文件系统的根目录下创建递归目录“1daoyun/file”,将附件中的BigDataSkills.txt文件,上传到1daoyun/file目录中,使用相关命令查看文件系统中1daoyu ...

  4. 计算1-9总共九个数字可以满足abc+def=hij这样的式子

    计算1-9总共九个数字可以满足abc+def=hij这样的式子:其中abcdefghij九个数字各个都不相同,它们都属于1-9个数字中: 首先,第一种方法很简单很暴力,直接枚举,这样的话时间复杂度高: ...

  5. 使用请求包装器RequestWrapper 对博客内容进行编码

    1.写一个文章类 代码如下 package model; public class article { private int id; private String title; private St ...

  6. Spring框架IOC和AOP介绍

    说明:本文部分内容参考其他优秀博客后结合自己实战例子改编如下 Spring框架是个轻量级的Java EE框架.所谓轻量级,是指不依赖于容器就能运行的.Struts.Hibernate也是轻量级的. 轻 ...

  7. python基础关键词触发的魔法方法

    with: __enter__ __exit__ dic={} 获取容器中指定元素的行为 dic["name"] = "egon" #设置值 __setitem ...

  8. Linux安装jemalloc笔记

    前言 最近研究一个工具库需要用 jemalloc 做内存分配器,但在 ubuntu 下安装过程中遇到很多问题,故记下安装过程的笔记,避免以后遇到在这上面浪费时间. 安装过程 环境:VMware Ubu ...

  9. [转帖]linux之sed用法

    linux之sed用法 https://www.cnblogs.com/dong008259/archive/2011/12/07/2279897.html docker images | awk ' ...

  10. 利用js对象将iframe数据缓存, 实现子页面跳转后, 返回时不丢失之前填写的数据

    利用js对象将iframe数据缓存, 实现子页面跳转后, 返回时不丢失之前填写的数据 实现描述:将数据存放在js对象中, 然后放在父页面的document对象中, 在页面刷新的时候将父页面的值取出来, ...