源网址: http://blog.csdn.net/mageshuai/article/details/3523116

今天看Think in java 的GUI这一章的时候,里面的TextArea这个例子在遍历Map时用到了Map.Entry 和 Map.entrySet() ,记得只见过Map.KeySet()和values()这两个方法,于是到API中一看,Map.entrySet() 这个方法返回的是一个Set<Map.Entry<K,V>>,Map.Entry 是一个接口,他的用途是表示一个映射项(里面有Key和Value),而Set<Map.Entry<K,V>>表示一个映射项的Set。

Map.Entry里有相应的getKey和getValue方法,让我们能够从一个项中取出Key和Value。这样就能理解了例子中的写法了。

for(Map.Entry me : m.entrySet()) {

t.append(me.getKey() + ": " + me.getValue() + "/n");

}

这里的t是一个TextArea,m是一个HashMap。

这种遍历Map的方法可以让我们在从Map中取得关键字之后,我们不用每次重复返回到Map中取得相对的值。

如下面是以前的写法:每次都要再从m中读出s所对应的值。

Set keys = m.keySet( );
       if(keys != null)
          for(String s : keys)
              t.append(s + ": " + m.get(s) + "/n");

源网址: http://blog.csdn.net/nuoshueihe/article/details/7874069

1.package edu.smc.test; 
2. 
3.import java.util.HashMap; 
4.import java.util.Iterator;
5.import java.util.Map; 
6.import java.util.Map.Entry;
7. 
8.public class TestEntrySet { 
9.    public static void main(String[] args) {
10.        Map<String,String> map=new HashMap<String,String>(); 
11.        map.put("1", "张三"); 
12.        map.put("2", "李四"); 
13.        map.put("3", "王五"); 
14.         
15.        System.out.println("方法一:"); 
16.        Iterator iterator=map.entrySet().iterator(); 
17.        while(iterator.hasNext()){       
18.           Map.Entry<String, String> entry= (Entry<String, String>) iterator.next(); 
19.           System.out.println("key:"+entry.getKey()+" value"+entry.getValue());   
20.          }        
21.         
22.        System.out.println("方法二:"); 
23.        for (Map.Entry<String, String> m : map.entrySet()) { 
24.              System.out.println("key:"+m.getKey()+" value"+m.getValue()); 
25.          }  
26.      } 
27.} 
package edu.smc.test;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;

public class TestEntrySet {
 public static void main(String[] args) {
  Map<String,String> map=new HashMap<String,String>();
  map.put("1", "张三");
  map.put("2", "李四");
  map.put("3", "王五");
  
  System.out.println("方法一:");
  Iterator iterator=map.entrySet().iterator();
        while(iterator.hasNext()){     
           Map.Entry<String, String> entry= (Entry<String, String>) iterator.next();
     System.out.println("key:"+entry.getKey()+" value"+entry.getValue()); 
    }      
       
        System.out.println("方法二:");
        for (Map.Entry<String, String> m : map.entrySet()) {
           System.out.println("key:"+m.getKey()+" value"+m.getValue());
          }
      }
}
结果:

[html] view plaincopyprint?
1.方法一: 
2.key:3 value王五 
3.key:2 value李四 
4.key:1 value张三 
5.方法二: 
6.key:3 value王五 
7.key:2 value李四 
8.key:1 value张三

另一种遍历Map的方式: Map.Entry 和 Map.entrySet()的更多相关文章

  1. HashMap两种遍历数据的方式

    HashMap的遍历有两种方式,一种是entrySet的方式,另外一种是keySet的方式. 第一种利用entrySet的方式: Map map = new HashMap(); Iterator i ...

  2. oc/object-c/ios哪种遍历NSArray/NSDictionary方式快?测试报告

    做app的时候,总免不了要多次遍历数组或者字典.究竟哪种遍历方式比较快呢?我做了如下测试:首先定义测试用宏: ? 1 2 3 4 5 6 7 8 9 #define MULogTimeinterval ...

  3. Java中五种遍历HashMap的方式

    import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class Java8Templat ...

  4. Map三种遍历方式

    Map三种遍历方式 package decorator; import java.util.Collection; import java.util.HashMap; import java.util ...

  5. map的四种遍历方式

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

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

    Map集合:即 接口Map<K,V> map集合的两种取出方式:    1.Set<k> keyset: 将map中所有的键存入到set集合(即将所有的key值存入到set中) ...

  7. Map俩种遍历方式

    Map本身没有迭代器因而在遍历其中元素时需要采取新的措施,在JDK中提供了俩种方法 keySet Set<K> keySet() 返回此映射中包含的键的 Set 视图.该 set 受映射支 ...

  8. Map 的四种遍历方式

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

  9. List和Map常用的几种遍历方式

    遍历一个List有以下几种方法: /*//1.普通for循环的方式: List<String> list=new ArrayList<String>(); list.add(& ...

  10. Map集合的几种遍历方式

    Map<String ,String> map=new HashMap<String,String>(); map.put("1","value1 ...

随机推荐

  1. z-index、display、selector选择器优先级css优先级面试用到

    z-index:控制元素叠放顺序,哪个z-index数值越大,那个优先被叠放在上面. relative.absolute.fixed这三种情况可以使用z-index. static不可以使用. dis ...

  2. hdu 4642 Fliping game

    http://acm.hdu.edu.cn/showproblem.php?pid=4642 对于给定的矩阵 操作步数的奇偶性是确定的 奇数步Alice赢 否则Bob赢 从左上角向右下角遍历遇到1就进 ...

  3. webix源码阅读

    最近在用webix,需要一个类似九宫格的监控界面.自带的控件里没有,于是萌生出做一个Custom Component的需求.不过webix关于自定义控件的文档比较少,官方只有一篇<Creatin ...

  4. echart------属性详细介绍

    theme = { // 全图默认背景 // backgroundColor: 'rgba(0,0,0,0)', // 默认色板 color: ['#ff7f50','#87cefa','#da70d ...

  5. maven3.04管理jetty9.2.10启动web项目

    在pom.xml文件中添加如下: <build>    <pluginManagement>        <plugins>            <plu ...

  6. Mytophome Deal

    using AnfleCrawler.Common; using System; using System.Collections.Generic; using System.Linq; using ...

  7. Python的平凡之路(8)

    (本文是对平凡之路(7)的补充等) 一.动态导入模块 import importlib __import__('import_lib.metaclass') #这是解释器自己内部用的 #importl ...

  8. wordpress的创建

    1.将mysql的安装文件放入虚拟机 2.搭建yum库 3.依次安装mysql的5个文件 最后一个server需要的依赖太多,所以用yum进行安装. 或者直接全部用yum进行安装 6.进行mysql的 ...

  9. 北大poj-1088

    滑雪 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 88484   Accepted: 33177 Description ...

  10. Certificate、Provisioning Profile、App ID

    关于 Certificate.Provisioning Profile.App ID 的介绍及其之间的关系 2014-03-13 15:26 13416人阅读 评论(1) 收藏 举报   目录(?)[ ...