JAVA遍历map元素
第一种:
- Map map = new HashMap();
- Iterator iter = map.entrySet().iterator();
- while (iter.hasNext()) {
- Map.Entry entry = (Map.Entry) iter.next();
- Object key = entry.getKey();
- Object val = entry.getValue();
- }
效率高,推荐使用此种方式!
第二种:
- Map map = new HashMap();
- Iterator iter = map.keySet().iterator();
- while (iter.hasNext()) {
- Object key = iter.next();
- Object val = map.get(key);
- }
效率低,以后尽量少使用!
JDK1.5中,应用新特性For-Each循环
- Map map = new HashMap();
- for(Object o : map.keySet()){
- map.get(o);
- }
返回的 set 中的每个元素都是一个 Map.Entry 类型。
- private Hashtable<String, String> emails = new Hashtable<String, String>();
- //方法一: 用entrySet()
- Iterator it = emails.entrySet().iterator();
- while(it.hasNext()){
- Map.Entry m=(Map.Entry)it.next();
- logger.info("email-" + m.getKey() + ":" + m.getValue());
- }
- // 方法二:jdk1.5支持,用entrySet()和For-Each循环()
- for (Map.Entry<String, String> m : emails.entrySet()) {
- logger.info("email-" + m.getKey() + ":" + m.getValue());
- }
- // 方法三:用keySet()
- Iterator it = emails.keySet().iterator();
- while (it.hasNext()){
- String key;
- key=(String)it.next();
- logger.info("email-" + key + ":" + emails.get(key));
- }
- // 方法五:jdk1.5支持,用keySEt()和For-Each循环
- for(Object m: emails.keySet()){
- logger.info("email-" + m+ ":" + emails.get(m));
- }
另外 我们可以先把hashMap 转为集合Collection,再迭代输出,不过得到的对象
- Map aa = new HashMap();
- aa.put("tmp1", new Object()); //追加 替换用同样的函数.
- aa.remove("temp1"); //删除
- for (Iterator i = aa.values().iterator(); i.hasNext(); )
- {
- Object temp = i.next();
- }
来个完整的,包含TreeSet的元素内部排序的
- public static void main(String[] args) {
- ArrayList<String> list = new ArrayList<String>();
- HashMap<Object,Object> hash = new HashMap<Object,Object>();
- TreeMap<Object,Object> treeMap = new TreeMap<Object,Object>();
- list.add("a");
- list.add("b");
- list.add("c");
- hash.put(3, 3);
- hash.put(4, 4);
- hash.put(5, 5);
- hash.put(6, 6);
- hash.put(1, 1);
- hash.put(2, 2);
- treeMap.put(1, 1);
- treeMap.put(2, 2);
- treeMap.put(3, 3);
- treeMap.put(4, 4);
- treeMap.put(5, 5);
- treeMap.put(6, 6);
- //list遍历
- for(String m: list){
- System.out.println(m);
- }
- // hashmap entrySet() 遍历
- for(Map.Entry<Object,Object> m: hash.entrySet()){
- System.out.println(m.getKey()+"---"+m.getValue());
- }
- //hashmap keySet() 遍历
- for(Object m: hash.keySet()){
- System.out.println(m+"---"+hash.get(m));
- }
- // treemap keySet()遍历
- for(Object m: treeMap.keySet()){
- System.out.println(m+"---"+treeMap.get(m));
- }
- }
JAVA遍历map元素的更多相关文章
- java 遍历map 方法 集合 五种的方法
package com.jackey.topic; import java.util.ArrayList;import java.util.HashMap;import java.util.Itera ...
- java 遍历Map的四种方式
java 遍历Map的四种方式 CreationTime--2018年7月16日16点15分 Author:Marydon 一.迭代key&value 第一种方式:迭代entrySet 1 ...
- Java遍历Map键、值。获取Map大小的方法
Map读取键值对,Java遍历Map的两种实现方法 第一种方法是根据map的keyset()方法来获取key的set集合,然后遍历map取得value的值 import java.util.HashM ...
- java 遍历map的方法
package com.jackey.topic; import java.util.ArrayList;import java.util.HashMap;import java.util.Itera ...
- Java遍历Map的4种方式
public static void main(String[] args) { // 循环遍历Map的4中方法 Map<Integer, Integer> map = new HashM ...
- [转载] Java 遍历 Map 的 5 种方式
目录 1 通过 keySet() 或 values() 方法遍历 2 通过 keySet 的 get(key) 获取值 3 通过 entrySet 遍历 4 通过迭代器 Iterator 遍历 5 通 ...
- java遍历map的四种方式
在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...
- Java遍历Map的3种方式
package test; import java.util.Collection; import java.util.HashMap; import java.util.Map; import ja ...
- java遍历map方法
java 代码: import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class Map ...
随机推荐
- Lightoj1003【判环操作】
题意: 对于n个给出字符串a,b,理解成a在b之前办好这个事情,要求n个给出两个串,a都要在b之前完成: 题意: 所以一旦出现环就不行了: 以前在写最短路的时候,spfa就有一个判环,后来写着写着写到 ...
- Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined)【A,B,C,D】
呵呵哒,上分~ CodeForces 724A: 题意: 给你两个星期几,问连续两个月的头一天是否满足: #include <iostream> #include <stdio.h& ...
- CodeForces 644B【模拟】
题意: 查询数 和 最大的队列容量+1: 按时间顺序 ti代表,第i个出线的时间: di代表,第i个需要处理的时间: 对于第i个输出他所需要的时间完成,或者拒绝进入输出-1: 思路: 真是MDZZ了, ...
- hdu5883【欧拉通路】
题意:n个点m条无向边的图,找一个欧拉通路/回路,下标是p1,p2,p3-pt,然后使得ap1XORap2XOR-XORapt这个值最大. 思路: 首先要判断一下这个图是不是联通的,用并查集就好了,然 ...
- C#箴言:定义常量的两种方法
在C#中定义常量的方式有两种, 一种叫做静态常量(Compile-time constant),另一种叫做动态常量(Runtime constant). 前者用"const"来定义 ...
- Validation(1)
站在巨人的肩膀上 Java Bean Validation 最佳实践 参数校验是我们程序开发中必不可少的过程.用户在前端页面上填写表单时,前端js程序会校验参数的合法性,当数据到了后端,为了防止恶意操 ...
- Spring源码(一)
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</lis ...
- python3错误之TypeError: 'dict_items' object is not callable
这种错误出现在循环结构中套循环结构,而循环时内部循环为字典,外部循环为该字典调用items方法后取到的值,内部循环调用外部循环中遍历的结果: 解决方案: 将外部循环的items()方法调用改为.key ...
- [题解]区间dp_luogu_P3147 262144
小数据版本P3146,可以区间dp, 性质:对于一个区间如果能合并成一个数,那么这个数是确定的 理解:把每个数看做 2^x 的形式,那么如果合并:2^x + 2^x =2^(x+1) 所以 f [ i ...
- keil_rtx特点
Keil RTX是一个专为ARM及Cortex M系列处理器开发的无版税的确定的实时操作系统.它允许工程师建立多任务同步并行的程序软件,同时也能帮助使程序代码更加结构化和便于维护. 产品亮点 所有 ...