إذا كنت بحاجة إلى إضافة كافة عناصر مجموعة ArrayList() إلى مجموعة أخرى، فيمكنك استخدام طريقة addAll() لفئة Java ArrayList . سأقوم في هذه المقالة بشرح كيفية عمل هذه الطريقة وتقديم بعض أمثلة التعليمات البرمجية.
توقيع أسلوب ArrayList addAll()
هناك نوعان مختلفان من أسلوب java.util.ArrayList.addAll . ها هم.boolean addAll(Collection<? extends E> c)
ترجع هذه الطريقة صحيحًا إذا تم تغيير القائمة نتيجة للاستدعاء، ولكن الأهم من ذلك، أنها تضيف جميع عناصر المجموعة المحددة إلى نهاية هذه القائمة، بالترتيب الذي يتم إرجاعها بواسطة Iterator للمجموعة المحددة. العنصر c هو القائمة التي ستتم إضافتها إلى ArrayList الخاص بك . تقوم الطريقة أيضًا بطرح NullPointerException إذا كانت المجموعة المحددة فارغة.
boolean addAll(int index, Collection<? extends E> c)
تقوم هذه الطريقة بإدراج كافة العناصر الموجودة في المجموعة المحددة c في هذه القائمة، بدءًا من فهرس الموضع المحدد.
مثال على بناء جملة ArrayList addAll()
هذا ما يبدو عليه استدعاء الأسلوب ArrayList addAll() في برنامج Java:myList.addAll(myNewList))
حيث myList هي ArrayList الأصلية و myNewList هي قائمة، ستتم إضافة جميع قيمها إلى myList إذا كانت موجودة.
myList.addAll(2, myNewList))
متغير من أسلوب ArrayList addAll() مع معلمتين. ستتم إضافة جميع العناصر من myNewList إلى myList ، والعنصر الأول myNewList[0] سيصبح myList[2] ، و myNewList[1] الآن هو myList[3] ، وهكذا. العناصر من القائمة الأصلية، بدءًا من رقم 2، يتم نقلها إلى ذيل قائمة التحرير والسرد الجديدة.
ArrayList addAll () أمثلة على التعليمات البرمجية
حان الوقت الآن لبعض أمثلة التعليمات البرمجية. دعونا ننشئ قائمة بأصدقائنا، ونسميها "أصدقاء"، ونضيف أسمائهم هناك. لنفترض أننا بدأنا الدراسة الجامعية وكوّننا بعض الأصدقاء الجدد في وقت واحد. إنها لحظة جيدة لإنشاء قائمة أصدقاء جديدة لهم. مر الوقت، وتأكدت مرة واحدة من أن أصدقائك الجدد حقيقيون، فقررت نقلهم إلى قائمة الأصدقاء الرئيسية. يمكنك القيام بذلك باستخدام طريقة addAll () . في البرنامج، سنطبع على وحدة التحكم القائمة الأولية للأصدقاء، وقائمة الأصدقاء الجدد، وقائمة الأصدقاء المحدثة، بالإضافة إلى القيمة المنطقية التي يتم إرجاعها بواسطة طريقة addAll ( ) . يُرجع صحيحًا إذا تم تغيير القائمة الأصلية بسبب تشغيل الطريقة وخطأ إذا لم يحدث ذلك.import java.util.ArrayList;
import java.util.List;
public class AddAllDemo {
public static void main(String[] args) {
List<String> friends = new ArrayList<>();
friends.add("Johnny");
friends.add("Ivy");
friends.add("Rick");
System.out.println(friends);
List<String> newFriends = new ArrayList<>();
newFriends.add("Andrew");
newFriends.add("Alex");
newFriends.add("Neil");
System.out.println(newFriends);
//let's print out the value addAll() method returns
//here it's true because list friends was changed
System.out.println(friends.addAll(newFriends));
System.out.println("My new list with new friends added: ");
System.out.println(friends);
}
}
الإخراج هو:
[جوني، آيفي، ريك] [أندرو، أليكس، نيل] صحيح تمت إضافة قائمتي الجديدة مع الأصدقاء الجدد: [جوني، أندرو، أليكس، نيل، آيفي، ريك]
إذا قمنا بنفس العملية ولكن حاولنا إضافة قائمة فارغة للأصدقاء، ستعمل الطريقة، لكنها ستعيد خطأ، وليس صحيحًا لأن القائمة الأصلية لم تتغير.
import java.util.ArrayList;
import java.util.List;
public class AddAllDemo3 {
public static void main(String[] args) {
List<String> friends = new ArrayList<>();
friends.add("Johnny");
friends.add("Ivy");
friends.add("Rick");
System.out.println(friends);
List<String> newFriends = new ArrayList<>();
System.out.println(newFriends);
System.out.println(friends.addAll(newFriends));
System.out.println("My new list with new friends added: ");
System.out.println(friends);
}
}
الإخراج هو:
[جوني، آيفي، ريك] [] خطأ تمت إضافة قائمتي الجديدة مع الأصدقاء الجدد: [جوني، آيفي، ريك]
لنجرب الآن طريقة addAll() بمعلمتين.
boolean addAll(int index, Collection<? extends E> c)
دعونا نضيف أصدقاء جدد إلى القائمة مرة أخرى، ليس في الذيل، ولكن في المنتصف. لنفترض أنه بعد جوني مباشرة، والذي في حالتنا هو العنصر رقم صفر.
import java.util.ArrayList;
import java.util.List;
public class AddAllDemo2 {
public static void main(String[] args) {
List<String> friends = new ArrayList<>();
friends.add("Johnny");
friends.add("Ivy");
friends.add("Rick");
System.out.println(friends);
List<String> newFriends = new ArrayList<>();
newFriends.add("Andrew");
newFriends.add("Alex");
newFriends.add("Neil");
System.out.println(newFriends);
System.out.println(friends.addAll(1, newFriends));
System.out.println("My new list with new friends added: ");
System.out.println(friends);
}
}
النتيجة المتوقعة لعمل البرنامج: أصبح أندرو الآن رقم 1 في القائمة المجمعة، وأليكس - 2، ونيل - 3، وآيفي، الذي كان رقم 1 من قبل، انتقل إلى المركز الرابع.
[جوني، آيفي، ريك] [أندرو، أليكس، نيل] صحيح تمت إضافة قائمتي الجديدة مع الأصدقاء الجدد: [جوني، أندرو، أليكس، نيل، آيفي، ريك]
GO TO FULL VERSION