何时使用LinkedList而不是ArrayList?
你好!我开始学习Java,遇到了在LinkedList和ArrayList之间选择的问题。我知道两者都实现了List接口,但无法理解在什么情况下该用哪个。
我写了一个简单的测试:
```java
List arrayList = new ArrayList<>();
List linkedList = new LinkedList<>();
// 添加100000个元素
long start = System.nanoTime();
for (int i = 0; i < 100000; i++) {
arrayList.add("Element " + i);
}
long end = System.nanoTime();
System.out.println("ArrayList add: " + (end - start) + " ns");
start = System.nanoTime();
for (int i = 0; i < 100000; i++) {
linkedList.add("Element " + i);
}
end = System.nanoTime();
System.out.println("LinkedList add: " + (end - start) + " ns");
```
ArrayList显示大约15-20毫秒,而LinkedList是25-30毫秒。但我听说LinkedList在中间插入时更快。我试了一下:
```java
// 在中间插入
start = System.nanoTime();
arrayList.add(50000, "INSERTED");
end = S