توفر مجموعة Java بنية للتعامل مع مجموعة الكائنات. المجموعة تعني وحدة واحدة من الكائنات. يسمح لنا بتخزين ومعالجة مجموعة الكائنات كوحدة واحدة.
يمكننا بسهولة إجراء العديد من العمليات مثل البحث والفرز والإدراج والحذف والمعالجة على مجموعة من الكائنات باستخدام إطار عمل المجموعة.
يوفر إطار مجموعة Java العديد من الواجهات والفئات. تحتوي الواجهات تعيين، قائمة ، قائمة الانتظار، ديك ، وتحتوي الطبقات ArrayList , المتجه , قائمة مرتبطة , HashSet , TreeSet ، لينكدهاشسيت ، و طابور الأولوية .
جافا الحصول على الوقت الحالي
في هذا القسم سوف نفرق بين عنصرين من عناصر إطار التجميع ، وهي القائمة وArrayList. القائمة عبارة عن واجهة، وArrayList عبارة عن فئة.
واجهة القائمة
القائمة عبارة عن واجهة فرعية لإطار عمل المجموعة التي تسمح لنا بالحفاظ على المجموعة المرتبة من الكائنات. يمكننا تخزين القيم المكررة والعناصر الفارغة باستخدام القائمة. يوفر طريقة قائمة على الفهرس لإجراء عمليات الإدراج والحذف والبحث والتحديث على الكائنات.
واجهة القائمة موجودة في حزمة java.util. وهو يطبق فئات ArrayList وLinkedList وStack وVector. إنها أيضًا قاعدة لفئات ListIterator التي يمكننا من خلالها تكرار القائمة في الاتجاهين الأمامي والخلفي.
توفر واجهة القائمة الوصول الموضعي وإدراج العناصر وتحافظ على ترتيب الإدراج. يمكن إنشاء مثيل القائمة باستخدام فئات التنفيذ.
تنفيذ القائمة:
يمكننا تنفيذ واجهة القائمة باستخدام ArrayList وLinkedList وVector و فئات المكدس .
لإنشاء مثيل لواجهة القائمة، يمكننا استخدام بناء الجملة التالي:
List list1= new ArrayList(); List list2 = new LinkedList(); List list3 = new Vector(); List list4 = new Stack();
النظر في المثال أدناه من القائمة:
import java.util.*; public class JavaListExample { public static void main(String[] args) { List l = new ArrayList(); //Implementation of List l using ArrayList class l.add('Hello'); //adding objects l.add('Java'); l.add('Tpoint'); System.out.println(l); } }
انتاج:
محدد جافا
[Hello, Java, Tpoint]
فئة قائمة المصفوفات
تستخدم فئة ArrayList مصفوفة ديناميكية لتخزين العناصر. تعمل فئة ArrayList مثل المصفوفة، لكن لا يوجد حد لحجمها. يمكننا إضافة أو إزالة العناصر وقتما نشاء. يمكننا تخزين العنصر المكرر باستخدام فئة ArrayList. يدير ترتيب الإدراج داخليا.
تعد فئة ArrayList أكثر مرونة من المصفوفة التقليدية. يقوم بتنفيذ واجهة القائمة لاستخدام كافة أساليب واجهة القائمة. يقام في جافا حزمة .util.
ترث فئة ArrayList فئة AbstractList وتنفذ واجهة القائمة. يمكن الوصول إلى عناصره بشكل عشوائي. ولا يمكن استخدامه للأنواع البدائية مثل int وchar وما إلى ذلك؛ بالنسبة لأنواع البيانات هذه، نحتاج إلى فئة مجمعة.
تنفيذ ArrayList:
ترث فئة ArrayList جميع أساليب فئة AbstractList وتنفذ واجهة القائمة.
يمكن الإعلان عن فئة ArrayList على النحو التالي:
public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, Serializable
يمكن تعريف ArrayList على النحو التالي:
ArrayList myList = new ArrayList();
خذ بعين الاعتبار المثال التالي لـ ArrayList:
import java.util.*; public class JavaAL { public static void main(String[] args) { ArrayList l = new ArrayList(); //implementation of ArrayList l.add('Hello'); //adding objects l.add('Java'); l.add('Tpoint'); System.out.println(l); } }
انتاج:
[Hello, Java, Tpoint]
بعض الاختلافات الرئيسية بين واجهة القائمة وفئة ArrayList
بعض الاختلافات الرئيسية بين القائمة وArrayList هي كما يلي:
- أحد الاختلافات الرئيسية هو ذلك القائمة هي واجهة وArrayList هي فئة إطار مجموعة جافا.
- ال القائمة توسع إطار المجموعة نسبيا يقوم ArrayList بتوسيع فئة AbstractList وتنفيذ واجهة القائمة .
- مساحة الاسم للقائمة وArrayList هي System.Collection.Generic وSystem Collection، على التوالي.
- تقوم قائمة بتخزين العناصر في تسلسل ويتم تحديدها بواسطة رقم الفهرس الفردي. نسبيًا، يقوم ArrayList بتخزين العناصر في مصفوفة ديناميكية؛ يمكن أن تنمو عند الحاجة.
عندما نحدد القائمة على النحو التالي:
List myList = new ArrayList();
هذا يعني أنه يمكننا فقط استدعاء الأساليب والأعضاء المرجعيين من واجهة القائمة.
إذا قمنا بتعريف ArrayList على النحو التالي:
جافا ملف مفتوح
ArrayList myList = new ArrayList();
هذا يعني أنه يمكننا استدعاء الأساليب المتاحة في ArrayList واستخدام أعضائها بالإضافة إلى القائمة.
خذ بعين الاعتبار الجدول أدناه لبعض مقارنات الرأس بين List وArrayList:
قاعدة المقارنة | قائمة | ArrayList |
---|---|---|
عام | إنها واجهة. | إنها الطبقة. |
عمل | يقوم بإنشاء قائمة بالكائنات التي يمكن الوصول إليها عن طريق رقم الفهرس الفردي. | يقوم بإنشاء مصفوفة ديناميكية يمكن توسيعها عند الحاجة. |
تطبيق | List list1= new ArrayList(); | ArrayList myList = new ArrayList(); |
تمديد/تنفيذ | إنه يوسع إطار المجموعة. | يقوم بتوسيع فئة AbstractList وتنفيذ واجهة القائمة. |
الحزمة الأساسية | java.util | java.util |
مساحة الاسم | System.Collection.Generic | System.Collection |
أداء | يوفر معالجة أسرع للأشياء. | يوفر معالجة بطيئة للكائنات مقارنة بالقائمة. |
إنشاء مثيل | لا يمكن إنشاء مثيل له. | يمكن أن تكون فورية |
خاتمة
القائمة عبارة عن واجهة، وArrayList هي فئة من إطار مجموعة Java. تقوم القائمة بإنشاء مصفوفة ثابتة، وتقوم ArrayList بإنشاء مصفوفة ديناميكية لتخزين الكائنات. لذلك لا يمكن توسيع القائمة بمجرد إنشائها ولكن باستخدام ArrayList، يمكننا توسيع المصفوفة عند الحاجة.
من الأفضل استخدام واجهة القائمة إذا كنت تريد الاستفادة من تعدد الأشكال. في المستقبل، إذا طلب منا تنفيذ الواجهة، فلن نحتاج إلى تغيير البرنامج.