快速会用:

HashMap<Integer,String> maps=new HashMap<Integer,String>();
maps.put(1,"xiaomao");
maps.put(2,"xiaogou");
maps.put(3,"xiaohua");
Set<Map.Entry<Integer, String>> entrySet=maps.entrySet();
for(Map.Entry<Integer, String> entry: entrySet){
System.out.println(entry.getKey() + ".........." + entry.getValue());
}

  

今天看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");

又一例子:

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张三

  

java程序(一)----HashMap同时获取键值的更多相关文章

  1. linux驱动之中断方式获取键值

    linux驱动之中断方式获取键值 ----------------------------------------------------------------------------------- ...

  2. C语言定义从URL中获取键值的接口

    环境:centos7下,对客户端http请求进行解析,来获取有效键值(包括汉字). 头文件 /* 这是一份关于从Http请求信息中提取键值的接口声明的头文件 */ #ifndef _HEAD_H_ # ...

  3. Java I/O---Properties类(持久化键值对)

    1.Properties类简介 Properties类(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置文件中很多变量是经常改变的,这 ...

  4. Java调用Python脚本并获取返回值

    在Java程序中有时需要调用Python的程序,这时可以使用一般的PyFunction来调用python的函数并获得返回值,但是采用这种方法有可能出现一些莫名其妙的错误,比如ImportError.在 ...

  5. 《java JDK7 学习笔记》之键值对Map

    一.常用的Map操作类 1.使用HashMap Map也支持泛型语法,泛型的Map实例: 建立Map操作对象时,可以使用泛型语法指定键与值的类型.上图键使用String,值也使用String类型.要建 ...

  6. Map获取键值,Map的几种遍历方法

    Map 类提供了一个称为entrySet()的方法,这个方法返回一个Map.Entry实例化后的对象集.接着,Map.Entry类提供了一个 getKey()方法和一个getValue()方法,Map ...

  7. java后台发送请求并获取返回值(续)

    在java后端发送请求给另一个平台,从而给前端实现 "透传"的过程中,出现:数据请求到了并传到了前端,但是控制台打印时中文显示Unicode码而前端界面中中文显示不出来!!!开始怀 ...

  8. java后台发送请求并获取返回值

    项目中需要前端发送请求给后端,而后端需要从另一个平台中取数据然后再透传给前端,通过下述代码将其实现.在此记录一下. package com.autotest.utils; import java.io ...

  9. Map获取键值,Map的几种遍历方法 (转载)

    Map类提供了一个称为entrySet()的方法,这个方法返回一个Map.Entry实例化后的对象集.接着,Map.Entry类提供了一个getKey()方法和一个getValue()方法,Map.E ...

随机推荐

  1. XML HTML

    XML和HTML常用转义字符 XML和HTML中都有一些特殊的字符,这些字符在XML和HTML中是不能直接使用的,如果必须使用这些字符,应该使用其对应的转义字符. XML常用转义字符: 字符 转义字符 ...

  2. [css] px em rem

    一.区别 px是相对于显示器屏幕分辨率而言的. em相对于浏览器的默认字体尺寸. rem相对于HTML根元素. 二.使用  1.em 任意浏览器的默认字体高都是16px.所有未经调整的浏览器都符合: ...

  3. jQuery数组的遍历 function的加载

    加载函数时会被覆盖在jQuery中给提供的方案有三种形式 js中只能绑定一个方法 如果多次绑定后者会覆盖前者 最常用的一种 在jQuery中数组的遍历 使用map遍历数组  会返回一个新的数组  如果 ...

  4. Android Studio新建Jni工程

    2.2版本的Android Studio支持新建Jni工程,不用再像以前自己构建工程目录,首先把自己的升级自己的AS到2.2以上 然后打开Tools->Andorid->SDK manag ...

  5. 通用 PE 工具箱1.9.6(XP内核)by Uepon(李培聪)

    通用 PE 工具箱1.9.6(XP内核)by Uepon(李培聪)官网:http://hi.baidu.com/uepon?page=21.8版论坛帖子:http://bbs.wuyou.net/fo ...

  6. vb 和vb.net的区别

    vb 和vb.net的区别 源地址:http://blog.csdn.net/xjc1278003262/article/details/8805324 在随着VB.NET的 发展,大部分人都放弃使用 ...

  7. robot.libdocpkg package

    mplements the Libdoc tool. The command line entry point and programmatic interface for Libdoc are pr ...

  8. PowerDesigner使用教程|使用方法

    PowerDesigner安装方法:  http://dev.firnow.com/course/3_program/java/javajs/20090908/174375.html 安装完这2个软件 ...

  9. nginx配置 php 单入口

    location / {            root   html;            index  index.html index.htm index.php; if (!-e $requ ...

  10. 小例子(二)、winform窗体间的关系

    写一个关于winform窗体间的关系 1.登陆,思路:登陆后隐藏登陆窗体,关闭Form2时结束整个应用程序. //登陆窗体 private void button2_Click(object send ...