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

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

今天看Think injava 的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.    publicstatic void main(String[] args) {
10.       Map<String,String> map=newHashMap<String,String>(); 
11.       map.put("1", "张三"); 
12.       map.put("2", "李四"); 
13.       map.put("3", "王五"); 
14.        
15.       System.out.println("方法一:"); 
16.       Iteratoriterator=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=newHashMap<String,String>();
  map.put("1", "张三");
  map.put("2", "李四");
  map.put("3", "王五");
  
  System.out.println("方法一:");
  Iteratoriterator=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张三

转载地址:http://mvjqi.baihongyu.com/

你可能感兴趣的文章
Beginning Relational Data Modeling, Second Edition
查看>>
Winternals Defragmentation, Recovery, and Administration Field Guide
查看>>
Video Conferencing over IP : Configure, Secure, and Troubleshoot
查看>>
Pro ASP.NET 2.0 Website Programming
查看>>
Disassembling Code : IDA Pro and SoftICE
查看>>
Building Online Communities With Drupal, phpBB, and WordPress
查看>>
C# 2.0 : The Complete Reference
查看>>
Digital Character Animation 3
查看>>
Flash 8 Cookbook
查看>>
Mastering Mambo: E-Commerce, Templates, Module Development, SEO, Security, and Performance
查看>>
Web Design For Dummies (For Dummies
查看>>
Flash 8: Projects for Learning Animation and Interactivity
查看>>
Web Portals: : The New Gateways to Internet Information and Services
查看>>
Web Content Caching and Distribution
查看>>
Use Cases Patterns and Blueprints
查看>>
Understanding SOA with Web Services
查看>>
Unit Testing in Java: How Tests Drive the Code
查看>>
The J2EE Architect's Handbook: How to be a Successful Technical Architect for J2EE Applications
查看>>
Practical Mono (Expert's Voice in Open Source)
查看>>
Linux(R) Troubleshooting for System Administrators and Power Users
查看>>