源网址: 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. easyui treegrid 分页

    $(function () { $('#maintable').treegrid({ width: '98%', height: 550, nowrap: true, striped: true, f ...

  2. iOS开发UI篇—控制器的View的创建

    iOS开发UI篇—控制器的View的创建 一.6种创建控制器View的方式 #import "NJAppDelegate.h" #import "NJViewContro ...

  3. iOS开发拓展篇—音效的播放

    iOS开发拓展篇—音效的播放 一.简单介绍 简单来说,音频可以分为2种 (1)音效 又称“短音频”,通常在程序中的播放时长为1~2秒 在应用程序中起到点缀效果,提升整体用户体验 (2)音乐 比如游戏中 ...

  4. FBI是如何破获“美国少女”裸照勒索案的

     9月30日消息,据外国媒体报道,美国FBI昨日披露,“美国少女”(Miss Teen USA )卡西迪·伍尔芙(Cassidy Wolf )遭遇黑客通过电脑摄像头偷拍裸照兼敲诈勒索一案的嫌疑人已经被 ...

  5. 跨域资源共享 CORS

    CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing). 它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从 ...

  6. 一个 11 行 Python 代码实现的神经网络

    一个 11 行 Python 代码实现的神经网络 2015/12/02 · 实践项目 · 15 评论· 神经网络 分享到:18 本文由 伯乐在线 - 耶鲁怕冷 翻译,Namco 校稿.未经许可,禁止转 ...

  7. JavaScript 语句

    JavaScript 语句 JavaScript 语句向浏览器发出的命令.语句的作用是告诉浏览器该做什么. JavaScript 语句 JavaScript 语句是发给浏览器的命令. 这些命令的作用是 ...

  8. 黑马程序员——【Java基础】——泛型、Utilities工具类、其他对象API

    ---------- android培训.java培训.期待与您交流! ---------- 一.泛型 (一)泛型概述 1.泛型:JDK1.5版本以后出现的新特性,用于解决安全问题,是一个类型安全机制 ...

  9. Error Handling

    Use Exceptions Rather Than Return Codes Back in the distant past there were many languages that didn ...

  10. 第十三周学习笔记(编辑器选错了重发了这一个 原博客的确周天晚上提交了orz)

    并发:逻辑控制流在时间上的重叠. 构造并发程序的方法: 进程 I/O多路复用 线程 基于进程的并发编程 假设我们有两个客户端和一个服务器,服务器正在监听一个监听表述符上的请求.现在假设服务器接受了客户 ...