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. What is Dark Social & Dark Traffic?

    What is Dark Social & Dark Traffic? By Iaroslav Kudritskiy Google Analytics is supposed to speak ...

  2. vue项目中请求头为applicationx-www-form-urlencoded的参数传递

    当请求接口的请求头如下图所示时, 前端在传参时需要先新建一个URLSearchParams对象,然后将参数append到这个对象中 const params = new URLSearchParams ...

  3. jQuery UI Widget(1.8.1)工作原理

    /*! * jQuery UI Widget 1.8.1 * * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) * Dual l ...

  4. fastadmin cms使用注意一

    addon和application还有前端配置后还需要 注意表配置

  5. python 复制

    1. list的复制 直接用赋值符号实现浅复制,两者用id()函数的返回值是相同的,也就是占用同一块内存空间. 导入 copy 库, 用 copy.deepcopy(list1) 再赋值实现深复制,两 ...

  6. 常见的几种web攻击

    1. SQL注入 2. OS命令注入 3. 跨站脚本攻击(XSS) 4. HTTP首部注入 5. 会话劫持 6. 跨站点请求伪造(CSRF) 7. 点击劫持 8. DoS

  7. K60工程

    使用arm-none-eabi-objcopy工具将elf文件转换为hex文件 "D:/ELF/arm-none-eabi-objcopy.exe" -O ihex "D ...

  8. codeforces 1251D Salary Changing (二分+贪心)

    (点击此处查看原题) 题意分析 一共有s元钱,要用这些钱给n个人发工资,发给每个人的工资si有最少和最多限制 si ∈[li,ri],在发给n个人的总工资小于s的情况下,要求发给n个人中的工资的中位数 ...

  9. S02_CH16 等精度频率计实验

    S02_CH16 等精度频率计实验 在了解了AXI总线之后,今天我们自己动手设计一个带AXI4-Lite总线的IP,来完成频率计的实验. 频率计虽然小,但是也算五脏俱全,涉及到zynq的方方面面,比如 ...

  10. VMware永久key

    VMware永久KEY:5F29M-48312-8ZDF9-A8A5K-2AM0Z