ArrayList 与 LinkedList 性能实测
以下测试基于本地环境进行,具体耗时可能因硬件配置而异,仅供参考。
1. 尾部追加 (add(E e))
在频繁向集合末尾添加元素时,ArrayList 通常表现更好。LinkedList 每次增加元素都需要新建一个 Entry 对象并进行多次赋值操作,在频繁的系统调用中会对性能产生一定影响。
package list;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
public class ListPerformanceTest {
public static void main(String[] args) {
testAdd();
}
static void testAdd() {
Object obj = new Object();
List<Object> al = new ArrayList<>(); // 约 70ms
List<Object> ll = new LinkedList<>(); // 约 471ms
long b = System.currentTimeMillis();
for (int i = 0; i < 5000000; i++) {
al.add(obj); // 添加到尾端
}
long e = System.currentTimeMillis();
System.out.println(e - b);
}
}

