zoukankan      html  css  js  c++  java
  • 遍历HashMap及获取所有的Key值

    遍历HashMap

    HashMap attMap;
    Iterator i = attMap.entrySet().iterator();
    while(i.hasNext()){
    Object o = i.next();
    String key = o.toString();
    //这样就可以遍历该HashMap的key值了。
    }
    当然也可以遍历Map.Entry项,值。方法类似。


    也可以
    Object [] obja=attmap.keySet().toArray();

    听我们的支持说遍历hashmap使用entryset快些,因大部分都是用keyset遍历的,也没有去想那么多。今天研究了一下,果然差了很多。
    见示例,只是简单的hashmap信息。不多说了,大家把这个类在本地运行下,很容易看到结果。

    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Calendar;

    public class HashMapTest {

    public static void main(String[] args) {
    HashMap hashmap = new HashMap();
    for(int i=0;i<1000;i++){
    hashmap.put(""+i,"hello");
    }

    long bs = Calendar.getInstance().getTimeInMillis();
    Iterator iterator = hashmap.keySet().iterator();
    //String value = "";
    while(iterator.hasNext()) {
    //value = hashmap.get(iterator.next());
    System.out.println(hashmap.get(iterator.next()));
    }
    System.out.println(Calendar.getInstance().getTimeInMillis() - bs);
    listHashMap();
    }

    public static void listHashMap(){
    java.util.HashMap hashmap = new java.util.HashMap();
    for(int i=0;i<1000;i++){
    hashmap.put(""+i,"hello");
    }
    long bs = Calendar.getInstance().getTimeInMillis();
    //Set set = hashmap.entrySet() ;
    java.util.Iterator it = hashmap.entrySet().iterator();
    while(it.hasNext()){
    java.util.Map.Entry entry = (java.util.Map.Entry)it.next();
    // entry.getKey() 返回与此项对应的键
    // entry.getValue() 返回与此项对应的值
    System.out.println(entry.getValue());
    }
    System.out.println(Calendar.getInstance().getTimeInMillis() - bs);
    }

    }

    对于keySet其实是遍历了2次,一次是转为iterator,一次就从hashmap中取出key所对于的value。

    而entryset只是遍历了第一次,他把key和value都放到了entry中,所以就快了。


    对于我们做web的,可能不部分都是用vo对象或是form封装信息,所以用到hashmap时,其内存放的都是上面的对象。因此使用entryset遍历性能会有所提高。

    hashmap使用很多,比如导入信息时就要用到,因大部分导入的信息要去判断是否有重复的信息,这样就可以利用containsKey来进行处理了,而不用在插入的时候去进行处理。

  • 相关阅读:
    js的构造函数和原型
    js之window
    js之字符串需要应用正则表达式的方法
    javascript学习心得之字符串
    javascript学习心得之数组
    WPF_MahApps.Metro界面主题使用
    QT控件----tableWidget的常规使用
    C#欢迎画面显示程序启动进度条,并自动打开主界面
    基于VS的QT第一个桌面程序(UI与后端绑定)
    基于QT第一个桌面程序(图标及背景等资源设置)
  • 原文地址:https://www.cnblogs.com/pony/p/1284049.html
Copyright © 2011-2022 走看看