您的位置:首页 > 编程语言 > Java开发

Java中Map的遍历方法

2012-09-14 17:53 561 查看

第一种:

Map map =newHashMap();

Iterator iter=map.entrySet().iterator();

while(iter.hasNext()) {

Map.Entry entry=(Map.Entry) iter.next();

Object key=entry.getKey();

Object val=entry.getValue();

}

效率高,以后一定要使用此种方式!

第二种:

Map map=newHashMap();

Iterator iter=map.keySet().iterator();

while(iter.hasNext()) {

Object key=iter.next();

Object val=map.get(key);

}

效率低,以后尽量少使用!

HashMap的遍历有两种常用的方法,那就是使用keyset及entryset来进行遍历,但两者的遍历速度是有差别的,下面请看实例:

publicclassHashMapTest {

publicstaticvoidmain(String[] args) ...{

HashMap hashmap=newHashMap();

for(inti=0; i<1000;
i ) ...{

hashmap.put(""i,"thanks");

}

longbs=Calendar.getInstance().getTimeInMillis();

Iterator iterator=hashmap.keySet().iterator();

while(iterator.hasNext()) ...{

System.out.print(hashmap.get(iterator.next()));

}

System.out.println();

System.out.println(Calendar.getInstance().getTimeInMillis()-bs);

listHashMap();

}

publicstaticvoidlistHashMap() ...{

java.util.HashMap hashmap=newjava.util.HashMap();

for(inti=0; i<1000;
i ) ...{

hashmap.put(""i,"thanks");

}

longbs=Calendar.getInstance().getTimeInMillis();

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.print(entry.getValue());

}

System.out.println();

System.out.println(Calendar.getInstance().getTimeInMillis()-bs);

}

}

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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: