参考http://blog.youkuaiyun.com/hejiangtao/article/details/7173822
我自己也测试了一下用泛型和不用泛型的速度,泛型确实要快一些:
public class GenericTest {
static long time = 0; // 每次消耗时间
static long total = 0; // 总时间
static float average; // 时间平均值
public static void main(String[] args) {
// for (int i = 0; i < 10; i++) {
// Generic();// 泛型
// }
for (int i = 0; i < 10; i++) {
NonGeneric();// 原始类型
}
System.out.println("10次总时间: " + total + " ms");// 10次消耗时间
System.out.println("10次平均值: " + average + " ms");
}
// 原始类型
public static void NonGeneric() {
long start = System.currentTimeMillis();// 开始时间
ArrayList no_list = new ArrayList();
for (int i = 0; i < 1000000; i++) {
no_list.add(new Integer(i)); // 添加
}
for (int i = 0; i < 1000000; i++) {
int j = ((Integer) no_list.get(i)).intValue();// 取值
}
long end = System.currentTimeMillis();// 结束时间
time = (end - start);
total += time;
average = total / 10f;
System.out.println("NonGeneric: " + time + " ms");// 每次输出消耗时间
}
// 泛型
public static void Generic() {
long start = System.currentTimeMillis();// 开始时间
ArrayList<Integer> list = new ArrayList<Integer>();
for (int k = 0; k < 1000000; k++) {
list.add(new Integer(k));// 添加
}
for (int n = 0; n < 1000000; n++) {
int m = list.get(n).intValue();// 取值
}
long end = System.currentTimeMillis();// 结束时间.
time = (end - start);
total += time;
average = total / 10f;
System.out.println("Generic: " + time + " ms");// 每次输出消耗时间
}
}