您的位置:首页 > 其它

HashMap遍历的两种方式

2012-02-23 20:25 260 查看
第一种:

Map map = new HashMap();

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 = new HashMap();

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

while (iter.hasNext()) {

Object key = iter.next();

Object val = map.get(key);

}

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

例:

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

public class HashMapTest {

public static void main(String[] args) ...{

HashMap hashmap = new HashMap();

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

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

}

long bs = 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();

}

public static void listHashMap() ...{

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

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

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

}

long bs = 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中,所以就快了。
http://ludaojuan21.iteye.com/blog/243475
-------------------------------------------------------------------------------------------------------------------------------------------------

Map类方法应用举例

package edu.mum;

import java.util.HashMap;

import java.util.*;

public class MapPractice {

public static void testHashMap(){

HashMap<String, String> hm = new HashMap<String, String>();

hm.put("a", "aaa");

hm.put("b", "bbb");

hm.put("c", "ccc");

hm.put("d", "ddd");

hm.put("d", "ddd");

hm.put("e", "ddd");

hm.put("f", "fff");

hm.put("g", "ddd");

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

while(iter.hasNext()){

String key = (String) iter.next();

String value = hm.get(key);

System.out.println(key+"----------"+value);

}

}

public static void testHashTable(){

Hashtable<String, String> ht = new Hashtable<String, String>();

ht.put("a", "aaa");

ht.put("b", "bbb");

ht.put("c", "ccc");

ht.put("d", "ddd");

ht.put("d", "ddd");

ht.put("e", "ddd");

ht.put("f", "fff");

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

while(iter.hasNext()){

String key = (String)iter.next();

String value = ht.get(key);

System.out.println(key+"========="+value);

}

}

public static void testTreeMap(){

TreeMap<String, String> tm = new TreeMap<String, String>();

tm.put("a", "aaa");

tm.put("b", "bbb");

tm.put("c", "ccc");

tm.put("d", "ddd");

tm.put("d", "ddd");

tm.put("e", "ddd");

tm.put("f", "fff");

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

while(iter.hasNext()){

String key = (String)iter.next();

String value = tm.get(key);

System.out.println(key+"*********"+value);

}

}

public static void main(String[] args) {

testHashMap();

testHashTable();

testTreeMap();

}

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