متى تستخدم LinkedList بدلاً من ArrayList في Java؟
مرحباً! بدأت في تعلم 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