A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

谁给我用个具体的例子讲个entrySet的用法呢 谢谢

3 个回复

倒序浏览
entrySet()方法
返回此映射中包含的映射关系的 set 视图集合
private Hashtable<String, String> emails = new Hashtable<String, String>();
//        方法一: 用entrySet()
//        Iterator it = emails.entrySet().iterator();
//        while(it.hasNext()){
//        Map.Entry m=(Map.Entry)it.next();
//        logger.info("email-" + m.getKey() + ":" + m.getValue());
//        }

   // 方法二:直接再循环中
   for (Map.Entry<String, String> m : emails.entrySet()) {

    logger.info("email-" + m.getKey() + ":" + m.getValue());
   }

   // 方法三:用keySet()
   Iterator it = emails.keySet().iterator();
   while (it.hasNext()){
    String key;
    key=(String)it.next();
    logger.info("email-" + key + ":" + emails.get(key));
   }

另外 我们可以先把hashMap 转为集合Collection,再迭代输出,不过得到的对象

Map aa = new HashMap();
aa.put("tmp1", new Object()); //追加 替换用同样的函数.
aa.remove("temp1"); //删除
for (Iterator i = aa.values().iterator(); i.hasNext(); ) {
         Object temp = i.next();
} //遍历  
回复 使用道具 举报
    Map.entrySet的使用在视频老师讲是把HashMap中的每一对key和value看做整体通过hashmap的方法给它放到set中,由于set接口实现了Iterable接口的方法,那么这样就解决了遍历hashmap的问题。
    HashMap<String,Integer> maps = new HashMap<String,Integer>();
    maps.put("a",1);
    maps.put("b",2);
    Set<Map.Entry<String, Integer>> keyEntrySet = maps.entrySet();  
    for(Map.Entry<String, Integer> entry:keyEntrySet)  
    {  
        System.out.println(entry.getKey()+"---->"+entry.getValue());  
    }  
    或者上面的for循环改为下面的用迭代器来完成是一样的结果:
    for(Iterator ite = keyEntrySet.iterator(); ite.hasNext();){
        Map.Entry entry = (Map.Entry) ite.next();
        System.out.println(entry.getKey()+"---->"+entry.getValue());        
     }
回复 使用道具 举报
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<String> keys = m.keySet( );
if(keys != null)
    for(String s : keys)
        t.append(s + ": " + m.get(s) + "\n");
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马