本文共 1806 字,大约阅读时间需要 6 分钟。
遍历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来进行处理了,而不用在插入的时候去进行处理。 原文来自:雨枫技术教程网 http://www.fengfly.com 原文网址:http://www.fengfly.com/plus/view-64493-1.html转载地址:http://prbai.baihongyu.com/