قائمة في Java يوفر التسهيلات للحفاظ على جمع أمر . أنه يحتوي على الأساليب القائمة على الفهرس لإدراج العناصر وتحديثها وحذفها والبحث فيها. يمكن أن تحتوي على العناصر المكررة أيضًا. يمكننا أيضًا تخزين العناصر الفارغة في القائمة.
تم العثور على واجهة القائمة فيjava.utilpackage ويرث واجهة المجموعة. إنه مصنع لواجهة ListIterator. من خلال ListIterator، يمكننا تكرار القائمة في الاتجاهين الأمامي والخلفي. فئات التنفيذ لواجهة القائمة هيArrayList,قائمة مرتبطةوالمكدس والمتجهات. يتم استخدام ArrayList وLinkedList على نطاق واسع في برمجة Java. تم إهمال فئة Vector منذ Java 5.
إعلان واجهة القائمة
public interface List extends Collection
طرق قائمة جافا
طريقة | وصف | |
---|---|---|
إضافة باطلة (فهرس كثافة العمليات، عنصر E) | يتم استخدامه لإدراج العنصر المحدد في الموضع المحدد في القائمة. | |
إضافة منطقية (E e) | يتم استخدامه لإلحاق العنصر المحدد في نهاية القائمة. | |
إضافة منطقية (المجموعة ج) | يتم استخدامه لإلحاق جميع العناصر الموجودة في المجموعة المحددة بنهاية القائمة. | |
إضافة منطقية (int Index، Collection c) | يتم استخدامه لإلحاق جميع العناصر في المجموعة المحددة، بدءًا من الموضع المحدد في القائمة. | |
باطل واضح () | يتم استخدامه لإزالة كافة العناصر من هذه القائمة. | |
منطقية يساوي (كائن س) | يتم استخدامه لمقارنة الكائن المحدد مع عناصر القائمة. | |
كود التجزئة الدولي () | يتم استخدامه لإرجاع قيمة رمز التجزئة لقائمة. | |
الحصول على (فهرس كثافة العمليات) | يتم استخدامه لجلب العنصر من موضع معين في القائمة. | |
منطقي فارغ () | وترجع صحيحًا إذا كانت القائمة فارغة، وإلا فهي خاطئة. | |
كثافة العمليات lastIndexOf (كائن س) | يتم استخدامه لإرجاع الفهرس الموجود في هذه القائمة لآخر تواجد للعنصر المحدد، أو -1 إذا كانت القائمة لا تحتوي على هذا العنصر. | |
الكائن [] إلى الصفيف () | يتم استخدامه لإرجاع مصفوفة تحتوي على كافة العناصر الموجودة في هذه القائمة بالترتيب الصحيح. | |
T[] إلىصفيف(T[] أ) | يتم استخدامه لإرجاع مصفوفة تحتوي على كافة العناصر الموجودة في هذه القائمة بالترتيب الصحيح. | |
منطقي يحتوي على (كائن س) | يتم إرجاعه صحيحًا إذا كانت القائمة تحتوي على العنصر المحدد | |
منطقي يحتوي على الكل (المجموعة ج) | يتم إرجاعه صحيحًا إذا كانت القائمة تحتوي على كافة العناصر المحددة | |
مؤشر كثافة العمليات (كائن س) | يتم استخدامه لإرجاع الفهرس الموجود في هذه القائمة للتواجد الأول للعنصر المحدد، أو -1 إذا كانت القائمة لا تحتوي على هذا العنصر. | |
إزالة E (فهرس كثافة العمليات) | يتم استخدامه لإزالة العنصر الموجود في الموضع المحدد في القائمة. | |
إزالة منطقية (الكائن س) | يتم استخدامه لإزالة التواجد الأول للعنصر المحدد. | |
إزالة الكل المنطقية (المجموعة ج) | يتم استخدامه لإزالة كافة العناصر من القائمة. | |
استبدال باطلة الكل (مشغل UnaryOperator) | يتم استخدامه لاستبدال جميع العناصر من القائمة بالعنصر المحدد. | |
الاحتفاظ بالكل (المجموعة ج) باطلة | يتم استخدامه للاحتفاظ بجميع العناصر الموجودة في القائمة الموجودة في المجموعة المحددة. | |
مجموعة E (فهرس كثافة العمليات، عنصر E) | يتم استخدامه لاستبدال العنصر المحدد في القائمة، الموجود في الموضع المحدد. | |
فرز باطل (المقارنة ج) | يتم استخدامه لفرز عناصر القائمة على أساس المقارنة المحددة. | |
مقسم () | يتم استخدامه لإنشاء أداة تقسيم على العناصر الموجودة في القائمة. | |
القائمة الفرعية (int fromIndex، int toIndex) | يتم استخدامه لجلب جميع العناصر الموجودة ضمن النطاق المحدد. | |
حجم صحيح () | يتم استخدامه لإرجاع عدد العناصر الموجودة في القائمة. |
قائمة جافا مقابل ArrayList
القائمة عبارة عن واجهة بينما ArrayList هي فئة التنفيذ للقائمة.
كيفية إنشاء قائمة
توفر فئتا ArrayList وLinkedList تنفيذ واجهة القائمة. دعونا نرى الأمثلة لإنشاء القائمة:
//Creating a List of type String using ArrayList List list=new ArrayList(); //Creating a List of type Integer using ArrayList List list=new ArrayList(); //Creating a List of type Book using ArrayList List list=new ArrayList(); //Creating a List of type String using LinkedList List list=new LinkedList();
باختصار، يمكنك إنشاء القائمة من أي نوع. يتم استخدام فئتي ArrayList وLinkedList لتحديد النوع. هنا، T يدل على النوع.
مثال على قائمة جافا
دعونا نرى مثالاً بسيطًا للقائمة حيث نستخدم فئة ArrayList كتطبيق.
import java.util.*; public class ListExample1{ public static void main(String args[]){ //Creating a List List list=new ArrayList(); //Adding elements in the List list.add('Mango'); list.add('Apple'); list.add('Banana'); list.add('Grapes'); //Iterating the List element using for-each loop for(String fruit:list) System.out.println(fruit); } }اختبره الآن
انتاج:
Mango Apple Banana Grapes
كيفية تحويل المصفوفة إلى قائمة
يمكننا تحويل المصفوفة إلى قائمة عن طريق اجتياز المصفوفة وإضافة العنصر في القائمة واحدًا تلو الآخر باستخدام طريقة list.add(). دعونا نرى مثالاً بسيطًا لتحويل عناصر المصفوفة إلى قائمة.
import java.util.*; public class ArrayToListExample{ public static void main(String args[]){ //Creating Array String[] array={'Java','Python','PHP','C++'}; System.out.println('Printing Array: '+Arrays.toString(array)); //Converting Array to List List list=new ArrayList(); for(String lang:array){ list.add(lang); } System.out.println('Printing List: '+list); } }اختبره الآن
انتاج:
Printing Array: [Java, Python, PHP, C++] Printing List: [Java, Python, PHP, C++]
كيفية تحويل القائمة إلى صفيف
يمكننا تحويل القائمة إلى مصفوفة عن طريق استدعاء الأسلوب list.toArray() . دعونا نرى مثالاً بسيطًا لتحويل عناصر القائمة إلى مصفوفة.
أمثلة على الأشجار الثنائية
import java.util.*; public class ListToArrayExample{ public static void main(String args[]){ List fruitList = new ArrayList(); fruitList.add('Mango'); fruitList.add('Banana'); fruitList.add('Apple'); fruitList.add('Strawberry'); //Converting ArrayList to Array String[] array = fruitList.toArray(new String[fruitList.size()]); System.out.println('Printing Array: '+Arrays.toString(array)); System.out.println('Printing List: '+fruitList); } }اختبره الآن
انتاج:
Printing Array: [Mango, Banana, Apple, Strawberry] Printing List: [Mango, Banana, Apple, Strawberry]
الحصول على العنصر وتعيينه في القائمة
ال طريقة الحصول على (). إرجاع العنصر في الفهرس المحدد، في حين أن طريقة المجموعة (). يغير أو يستبدل العنصر.
نمط تصميم المصنع
import java.util.*; public class ListExample2{ public static void main(String args[]){ //Creating a List List list=new ArrayList(); //Adding elements in the List list.add('Mango'); list.add('Apple'); list.add('Banana'); list.add('Grapes'); //accessing the element System.out.println('Returning element: '+list.get(1));//it will return the 2nd element, because index starts from 0 //changing the element list.set(1,'Dates'); //Iterating the List element using for-each loop for(String fruit:list) System.out.println(fruit); } }اختبره الآن
انتاج:
Returning element: Apple Mango Dates Banana Grapes
كيفية فرز القائمة
هناك طرق مختلفة لفرز القائمة، وسنستخدم هنا طريقة Collections.sort() لفرز عنصر القائمة. ال java.util توفر الحزمة فئة فائدة المجموعات الذي يحتوي على طريقة ثابتة (). باستخدام مجموعات.فرز () الطريقة، يمكننا بسهولة فرز أي قائمة.
import java.util.*; class SortArrayList{ public static void main(String args[]){ //Creating a list of fruits List list1=new ArrayList(); list1.add('Mango'); list1.add('Apple'); list1.add('Banana'); list1.add('Grapes'); //Sorting the list Collections.sort(list1); //Traversing list through the for-each loop for(String fruit:list1) System.out.println(fruit); System.out.println('Sorting numbers...'); //Creating a list of numbers List list2=new ArrayList(); list2.add(21); list2.add(11); list2.add(51); list2.add(1); //Sorting the list Collections.sort(list2); //Traversing list through the for-each loop for(Integer number:list2) System.out.println(number); } }
انتاج:
Apple Banana Grapes Mango Sorting numbers... 1 11 21 51
واجهة Java ListIterator
يتم استخدام واجهة ListIterator لاجتياز العنصر في الاتجاه الخلفي والأمامي.
إعلان واجهة ListIterator
public interface ListIterator extends Iterator
طرق واجهة Java ListIterator:
طريقة | وصف |
---|---|
إضافة باطلة (ه ه) | تقوم هذه الطريقة بإدراج العنصر المحدد في القائمة. |
المنطقية hasNext() | ترجع هذه الطريقة صحيحًا إذا كان مكرر القائمة يحتوي على المزيد من العناصر أثناء اجتياز القائمة في الاتجاه الأمامي. |
التالي() | تقوم هذه الطريقة بإرجاع العنصر التالي في القائمة وتحسين موضع المؤشر. |
إنت نيكست إندكس () | تقوم هذه الطريقة بإرجاع فهرس العنصر الذي سيتم إرجاعه عن طريق استدعاء لاحق إلى next() |
المنطقية السابقة () | ترجع هذه الطريقة صحيحًا إذا كان مكرر القائمة يحتوي على المزيد من العناصر أثناء اجتياز القائمة في الاتجاه العكسي. |
ه السابقة () | تقوم هذه الطريقة بإرجاع العنصر السابق في القائمة وتحريك موضع المؤشر إلى الخلف. |
الفهرس السابق() | تقوم هذه الطريقة بإرجاع فهرس العنصر الذي سيتم إرجاعه عن طريق استدعاء لاحق إلى السابق (). |
إزالة باطلة () | تقوم هذه الطريقة بإزالة العنصر الأخير من القائمة الذي تم إرجاعه بواسطة الطرق التالية () أو السابقة (). |
مجموعة باطلة (E ه) | تستبدل هذه الطريقة العنصر الأخير الذي تم إرجاعه بواسطة الأساليب التالية () أو السابقة () بالعنصر المحدد. |
مثال على واجهة ListIterator
import java.util.*; public class ListIteratorExample1{ public static void main(String args[]){ List al=new ArrayList(); al.add('Amit'); al.add('Vijay'); al.add('Kumar'); al.add(1,'Sachin'); ListIterator itr=al.listIterator(); System.out.println('Traversing elements in forward direction'); while(itr.hasNext()){ System.out.println('index:'+itr.nextIndex()+' value:'+itr.next()); } System.out.println('Traversing elements in backward direction'); while(itr.hasPrevious()){ System.out.println('index:'+itr.previousIndex()+' value:'+itr.previous()); } } }
انتاج:
Traversing elements in forward direction index:0 value:Amit index:1 value:Sachin index:2 value:Vijay index:3 value:Kumar Traversing elements in backward direction index:3 value:Kumar index:2 value:Vijay index:1 value:Sachin index:0 value:Amit
مثال على القائمة: كتاب
دعونا نرى مثالاً على القائمة التي نضيف فيها الكتب.
import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class ListExample5 { public static void main(String[] args) { //Creating list of Books List list=new ArrayList(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications and Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to list list.add(b1); list.add(b2); list.add(b3); //Traversing list for(Book b:list){ System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } }اختبره الآن
انتاج:
101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications and Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6
مواضيع ذات صلة
الفرق بين ArrayList وLinkedList
الفرق بين المصفوفة و ArrayList
متى يتم استخدام ArrayList وLinkedList في Java
الفرق بين ArrayList وVector
كيفية مقارنة اثنين من ArrayList في جافا
كيفية عكس ArrayList في جافا
متى يتم استخدام ArrayList وLinkedList في Java
الخريطة في الآلة الكاتبة
كيفية جعل ArrayList للقراءة فقط
الفرق بين طول المصفوفة وحجم () ArrayList في Java
كيفية مزامنة ArrayList في جافا
كيفية تحويل ArrayList إلى Array و Array إلى ArrayList في Java
صفيف مقابل ArrayList في جافا
كيفية فرز Java ArrayList بترتيب تنازلي
كيفية إزالة التكرارات من ArrayList في Java