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 ...
随机推荐
- Java内存模型(Java Memory Model,JMM)
今天简单聊聊什么叫做 Java 内存模型,不是 JVM 内存结构哦. JMM 是一个语言级别的内存模型,处理器的硬件模型是硬件级别,Java中的内存模型是内存可见性的基本保证.从而为我们 volati ...
- 在 UIViewController 中手动增加 TableView 出现 Type 'SomeViewController' does not confirm to protocol 'UITableViewDataSource' 问题的解决办法
许多时候我们都有在普通的继承自 UIViewController 的控制器中使用 TableView 的需求,这时候就需要当前控制器类继承 UITableViewDelegate 和 UITableV ...
- pytest入门学习(2)
pytest的hello world pyt1.py def func(x): print (x+1); return x+1; def test_answer(): assert func(3) = ...
- AndroidTV开发
AndroidTV的开发其实和Android的开发是一样的,现在的电视机可以安装AnroidApp
- SpringBoot整合Memached
一.Memached介绍 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站 ...
- BZOJ1108(思路)
题目本质:因为只能往南和往东走所以不管怎么组合方案结果都是一样的Orz……我太菜了想不到嘤嘤嘤 #pragma comment(linker, "/STACK:1024000000,1024 ...
- 洛谷 P2376 [USACO09OCT]津贴Allowance
https://www.luogu.org/problemnew/show/P2376 看了题解做的,根本不会贪心.. #include<cstdio> #include<algor ...
- C. Functions again DP + 分类讨论
http://codeforces.com/contest/789/problem/C 首先按题目要求处理出dis数组. 那么对于任意一个区间,[L, R],是dis[L] - dis[L + 1] ...
- 玲珑杯”ACM比赛 Round #4 1054 - String cut 暴力。学到了扫描的另一种思想
http://www.ifrog.cc/acm/problem/1054 问删除一个字符后的最小循环节是多少. 比赛的时候想不出,不知道怎么暴力. 赛后看了别人代码才晓得.唉,还以为自己字符串还不错, ...
- hdu1754I Hate It(splay)
链接 线段树的水题,拿来学习一下splay. 本题涉及到求最大值以及单点更新,折腾了许久,差不多把splay搞明白了. 按位置建树,按位置是一颗排序二叉树,对于区间的操作非常方便,每次操作都将需要的结 ...