يوفر ArrayList وقتًا ثابتًا لعملية البحث، لذا من الأفضل استخدام ArrayList إذا كانت عملية البحث أكثر تكرارًا من عملية الإضافة والإزالة. توفر LinkedList وقتًا ثابتًا لعمليات الإضافة والإزالة. لذلك من الأفضل استخدام LinkedList للتلاعب.
يحتوي ArrayList على تعقيد زمني O(1) للوصول إلى العناصر عبر أساليب الحصول والتعيين.
LinkedList لديه تعقيد زمني O(n/2) للوصول إلى العناصر.
تطبق فئة LinkedLinked واجهة Deque أيضًا، حتى تتمكن من الحصول على وظيفة قائمة الانتظار ذات النهاية المزدوجة في LinkedList. فئة ArrayList لا تطبق واجهة Deque.
من حيث النوع، يعد ArrayList أفضل للوصول إلى البيانات بينما LinkedList أفضل للتعامل مع البيانات. تطبق كلا الفئتين واجهة القائمة.
مثال على قائمة المصفوفات
import java.util.*; public class ListExample { public static void main(String[] args) { //ArrayList is better to store and view data List list=new ArrayList(); list.add('ankit'); list.add('peter'); list.add('mayank'); System.out.println('Traversing ArrayList...'); for(String s:list){ System.out.println(s); } } }
انتاج:
Traversing ArrayList... ankit peter mayank
مثال القائمة المرتبطة
import java.util.*; public class ListExample2 { public static void main(String[] args) { //LinkedList is better to manipulate data List list=new LinkedList(); list.add('ankit'); list.add('peter'); list.add('mayank'); System.out.println('After adding: '+list); list.remove('peter'); System.out.println('After removing: '+list); list.set(1,'vivek'); System.out.println('After changing: '+list); } }
انتاج:
After adding: [ankit, peter, mayank] After removing: [ankit, mayank] After changing: [ankit, vivek]