CodeGym /مدونة جافا /Random-AR /طريقة Arrays.asList () في Java
John Squirrels
مستوى
San Francisco

طريقة Arrays.asList () في Java

نشرت في المجموعة
يخلط الكثير من المبتدئين بين مفهوم طريقة Arrays.asList() وبنية البيانات ArrayList. على الرغم من أنهما قد يبدوان متشابهين، إلا أن هذين الأمرين مختلفان تمامًا عندما يتعلق الأمر بالتنفيذ. في هذا المنشور، سنغطي الاستخدام الأساسي لطريقة Arrays.asList() وسنكشف عن بعض الالتباسات السائدة المتعلقة بها.

لماذا يتم استخدام Arrays.asList()؟

إذا كان لديك مصفوفة تحتاج إلى تحويلها إلى قائمة، فإن java.util.Arrays يوفر مجمّع Arrays.asList() لخدمة هذا الغرض. بكلمات بسيطة، تأخذ هذه الطريقة مصفوفة كمعلمة وتقوم بإرجاع قائمة. تم تطوير الأجزاء الرئيسية من Java Platform API قبل تقديم إطار عمل المجموعات. لذلك، في بعض الأحيان، قد تحتاج إلى الترجمة بين المصفوفات التقليدية والمجموعات الأكثر حداثة. تعمل هذه الوظيفة كحلقة وصل بين المجموعات وواجهات برمجة التطبيقات المستندة إلى المصفوفات.طريقة Arrays.asList() في Java - 1

مثال

ألقِ نظرة على المثال التالي:
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;

public class ArraysAsListDemo {
    public static void main(String[] args) {

	String[] teamMembers = {"Amanda", "Loren", "Keith"};
      // using aslist() method
	List teamList = Arrays.asList(teamMembers);
	System.out.println("List : " + teamList);

	HashSet teamHashSet = new HashSet<>(Arrays.asList(teamMembers));
	System.out.println("HashSet : " + teamHashSet);
    }
}
انتاج:
القائمة: [Amanda, Loren, Keith] HashSet: [Keith, Loren, Amanda] // HashSet لا يحافظ على النظام

ما الفرق بين Arrays.asList() وArrayList؟

عند استدعاء الأسلوب Arrays.asList() على صفيف، فإن الكائن الذي تم إرجاعه ليس ArrayList ( تطبيق صفيف يمكن تغيير حجمه لواجهة القائمة ). إنه كائن عرض باستخدام أساليب get() و set() التي تصل إلى المصفوفة الأساسية. جميع الطرق التي من شأنها تغيير حجم المصفوفة مثل add() أو إزالة() للمكرر المرتبط ترمي UnsupportedOperationException . السبب وراء تجميع برنامج Java بنجاح ولكنه يعطي استثناء وقت التشغيل هو أنه، على ما يبدو، يتم إرجاع "قائمة" كنتيجة لـ Arrays.asList() . حيث تكون جميع عمليات الإضافة/الحذف مسموحة. ولكن بما أن بنية البيانات الأساسية عبارة عن "مصفوفة" غير قابلة لتغيير الحجم ، فمن ثم يتم طرح استثناء في وقت التشغيل. إليك مقتطف يوضح كيف يبدو الأمر:
import java.util.Arrays;
import java.util.List;
public class ArraysAsListDemo {
   public static void main(String[] args) {
	Integer[] diceRoll = new Integer[6];
      //using aslist() method
	List diceRollList = Arrays.asList(diceRoll);
	System.out.println(diceRollList);

	// using getters and setters to randomly access the list
	diceRollList.set(5, 6);
	diceRollList.set(0, 1);
	System.out.println(diceRollList.get(5));
	System.out.println(diceRollList.get(1));

	System.out.println(diceRollList);

	diceRollList.add(7); // Add a new Integer to the list
    }
}
انتاج:
[فارغة، فارغة، فارغة، فارغة، فارغة] 6 فارغة [1، فارغة، فارغة، فارغة، خالية، 6] استثناء في مؤشر الترابط "الرئيسي" java.lang.UnsupportedOperationException في java.util.AbstractList.add(AbstractList. java:148) في java.util.AbstractList.add(AbstractList.java:108) في ArraysAsListDemo.main(ArraysAsListDemo.java:20)

أمثلة على استخدام طريقة asList()

اعتبارًا من Java SE 5.0، تم الإعلان عن أن طريقة asList() تحتوي على عدد متغير من الوسائط. بدلاً من تمرير مصفوفة، يمكنك أيضاً تمرير عناصر فردية. على سبيل المثال:
import java.util.Arrays;
import java.util.List;
public class ArraysAsListDemo {
    public static void main(String[] args) {
	List seasons = Arrays.asList("winter", "summer", "spring", "fall");
	List odds = Arrays.asList(1, 3, 5, 7, 9);

	System.out.println(seasons);
	System.out.println(odds);
    }
}
انتاج:
[الشتاء، الصيف، الربيع، الخريف] [1، 3، 5، 7، 9]

خاتمة

من أجل استخدام Arrays.asList() عليك أن تضع في اعتبارك أنها مجرد طريقة مجمعة لمنفعتك الخاصة. لا تخلطه مع ArrayList وتذكر أنه يُرجع "قائمة". في البداية، قد تحصل على أخطاء أثناء تنفيذ وظائف الإضافة/الإزالة، ولكن كل ذلك يختفي مع الممارسة والفهم المستمرين. لذا، اضغط على IDE الخاص بك واستمتع بتجربة تعليمية رائعة!
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION