zoukankan      html  css  js  c++  java
  • keyset与entryset

    1、基本概述

    Set<Map.Entry<K,V>> entrySet()  返回此映射中包含的映射关系的 set 视图。

    Set<K>              keySet()      返回此映射中包含的键的 set 视图。

    2、效率分析

    对于keySet其实是遍历了2次,一次是转为iterator,一次就从hashmap中取出key所对于的value。而entryset只是遍历了第一次,他把key和value都放到了entry中,所以就快了。

    3、使用举例

    Map<String, String> maps = new HashMap<String, String>();   
      //方法一: 用entrySet()   
      Iterator<Entry<String,String>> it = maps.entrySet().iterator();   
      while(it.hasNext()){   
       Map.Entry<String,String> m = it.next();   
       String key = m.getKey();
       String value= m.getValue(); 
      }   
      // 方法二:jdk1.5支持,用entrySet()和For-Each循环()   
      for (Map.Entry<String, String> m : maps.entrySet()) {   
       String key = m.getKey();
       String value= m.getValue();    
      }   
      // 方法三:用keySet()   
      Iterator<String> it2 = maps.keySet().iterator();   
      while (it2.hasNext()){   
       String key = it2.next();
       String value= maps.get(key);
      }   
      // 方法四:jdk1.5支持,用keySet()和For-Each循环   
      for(String m: maps.keySet()){   
       String key = m;
       String value= maps.get(m);
      }

    keySet()取值方式示例图:

    entrySet()取值方式示例图:

  • 相关阅读:
    linux 文件权限(s、t、i、a)解析
    vim Vundle
    数据结构学习(1)
    Android ImageView设置图片原理(上)
    C++11 之auto
    Android屏幕分辨率获取方法--源码剖析
    C++的发展方向是对的嘛?
    c++ 的前世今生
    学习知识的一种思路
    遗失的访谈小评
  • 原文地址:https://www.cnblogs.com/zhaoyan001/p/6293124.html
Copyright © 2011-2022 走看看