ArrayList LinkedList Vector这三个集合框架在操作数据时,即往里面添加新的变量的时候,三个的效率排名。 最开始猜测是ArrayList第一是肯定没有问题的,关键是LinkedList和Vector,当时觉得Vector既然是线程安全的,那应该具有同步锁,那应该效率会慢一点。
结果却是相反的
// 测试ArrayList的性能,这里讲循环的数量尽量加大,使达到更加明显的效果
public static void arrayListTest() {
List
arraylist = new ArrayList
();
long start = System.currentTimeMillis();
for (int i = 0; i < 1000000; i++) {
arraylist.add("abc");
}
long end = System.currentTimeMillis();
System.out.println("arraylist Times = " + (end - start));
}
// 测试LinkedList
public static void linkListTest() {
List
linklist = new LinkedList
();
long start = System.currentTimeMillis();
for (int i = 0; i < 1000000; i++) {
linklist.add("abc");
}
long end = System.currentTimeMillis();
System.out.println("linklist Times = " + (end - start));
}
// 测试Vector
public static void vectorTest() {
Vector
vectorlist = new Vector
(); long start = System.currentTimeMillis(); for (int i = 0; i < 1000000; i++) { vectorlist.add("abc"); } long end = System.currentTimeMillis(); System.out.println("vectorlist Times = " + (end - start)); }
总结:最慢的是LinkedList,最快的是ArrayList 。我猜想估计是LinkedList底层由于不是有序的线性的。在末尾插入的时候需要改动两个指针。我只能这样理解了,看有没有谁能给出更加正确或者是更加合理的解释。