博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转]另一种遍历Map的方式: Map.Entry 和 Map.entrySet()
阅读量:5845 次
发布时间:2019-06-18

本文共 2298 字,大约阅读时间需要 7 分钟。

 转自: 

今天看Think in java 的GUI这一章的时候,里面的TextArea这个例子在遍历Map时用到了Map.Entry 和 Map.entrySet() ,记得只见过Map.KeySet()和values()这两个方法,于是到API中一看,Map.entrySet() 这个方法返回的是一个<<,>>,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张三 

转载于:https://www.cnblogs.com/AmbitiousMice/p/5868016.html

你可能感兴趣的文章
Luogu P4707 重返现世
查看>>
目标与绩效管理实战专家胡立
查看>>
axios 中断请求
查看>>
2014手机分析图
查看>>
Linux PID 1 和 Systemd
查看>>
一元多项式相加
查看>>
commandLink/commandButton/ajax backing bean action/listener method not invoked (转)
查看>>
软件工作的大环境
查看>>
梅沙教育APP简单分析-版本:iOS v1.2.21-Nathaneko-佳钦
查看>>
Word中如何设置图片与段落的间距为半行
查看>>
JQuery this和$(this)的区别及获取$(this)子元素对象的方法
查看>>
关于分区索引与全局索引性能比较的示例
查看>>
沟通:用故事产生共鸣
查看>>
1080*1920 下看网站很爽
查看>>
CMake 构建项目Android NDK项目基础知识
查看>>
MySQL 不落地迁移、导入 PostgreSQL - 推荐 rds_dbsync
查看>>
[Erlang 0004] Centos 源代码编译 安装 Erlang
查看>>
51 Nod 1027 大数乘法【Java大数乱搞】
查看>>
三维重建技术概述
查看>>
AI x 量化:华尔街老司机解密智能投资正确姿势
查看>>