import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
public class GenericTypeDemo {
public static void main(String[] args){
long start = System.currentTimeMillis();
long generic_map_time = 0;
Map<String, String> generic_map = new HashMap<String, String>();
for(int i = 0; i < 1000000; i++){
generic_map.put("item" + i,"value" + i);
}
for(int i = 0; i < generic_map.size(); i++){
String value = generic_map.get("item" + i);
}
Iterator<Entry<String, String>> iter = generic_map.entrySet().iterator();
while (iter.hasNext()) {
Entry<String, String> entry = iter.next();
String key = entry.getKey();
String value = entry.getValue();
}
for(int i = 0; i < generic_map.size(); i++){
if(generic_map.containsKey("item" + i)){
generic_map.remove("item" + i);
}
}
generic_map_time = System.currentTimeMillis() - start;
long map_time = 0;
Map map = new HashMap();
for(int i = 0; i < 1000000; i++){
map.put("item" + i,"value" + i);
}
for(int i = 0; i < map.size(); i++){
String value = map.get("item" + i).toString();
}
Iterator iter2 = map.entrySet().iterator();
while (iter2.hasNext()) {
Entry entry = (Entry) iter2.next();
String key = (String)entry.getKey();
String value = (String)entry.getValue();
}
for(int i = 0; i < map.size(); i++){
if(map.containsKey("item" + i)){
map.remove("item" + i);
}
}
map_time = System.currentTimeMillis() - start;
System.out.println("泛型:" + generic_map_time + "非泛型:" + map_time);
}
}
数据量(String类型) 泛型map 非泛型
1000000 1782 3516
5000000 8688 17953
100000 125 250
数据量(int类型) 泛型map 非泛型
1000000 469 953
5000000 2422 4782
100000 32 63
用泛型的性能比不用泛型而每次都要强制转换的性能好一倍,所以我们在集合类上都最好使用泛型,提高性能。泛型在集合类中使用最广泛。