星期六, 四月 02, 2005

JAVA Hashtable VS HashMap

一直想当然Hashmap比Hashtable快。

可最近发现很多人说Hashtable比Hashmap快多了。

在jdk 1.4.1.x上测试后,发现果然如此。

Gosh.


import java.util.*;

public class HashMapTest{
public static void main(String args[]){
HashMap hm = new HashMap();
int sizeOfTrial = 100000;
String[] keys = new String[sizeOfTrial];
String[] vals = new String[sizeOfTrial];

//init sizeOfTrial key/value pairs
for (int i=0; i < sizeOfTrial; i++){
String s1 = new String("key"+ i);
String s2 = new String("val"+ i);
keys[i] = s1;
vals[i] = s2;
}

long t1 = System.currentTimeMillis();

for (int i=0; i < sizeOfTrial; i++){
hm.put(keys[i],vals[i]);
}
long t2 = System.currentTimeMillis();

System.out.println("total time " + (t2-t1));

}
}

把HashMap换成Hashtable 就可以测试了。
大概10万次的操作。Hashtable 快了90%