zoukankan      html  css  js  c++  java
  • java程序(一)----HashMap同时获取键值

    快速会用:

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

      

  • 相关阅读:
    乘坐飞机时,有什么事情是机长和机上工作人员不想让乘客知道的?
    北京有哪些被废弃的地方值得一看?推荐理由是什么?
    在读硕士或博士是如何养活自己的?
    怎样有效提高记忆力?
    北京值得去的、不为人知的景点(或展览馆、美术馆、公园)有哪些?
    你收藏了哪些藏品?
    如何抓到入侵网站的黑客?
    中国姓氏的区域性?
    python之入门,你好,中国
    Eclipse 内置浏览器
  • 原文地址:https://www.cnblogs.com/fclbky/p/5101492.html
Copyright © 2011-2022 走看看