مقدمة:
تقدم هذه المقالة مقارنة مزايا وعيوب المواقف الثلاثة لتحويل المصفوفات إلى قائمة في Java ، وكذلك مقارنة سيناريوهات التطبيق ، وتحليل أسباب أخطاء تحويل النوع التي غالباً ما يرتكبها المبرمجون.
1. الطريقة الأكثر شيوعًا (ليس بالضرورة الأفضل)
بعد تحويل المصفوفة إلى قائمة من خلال Arrays.asList(strArray) ، لا يمكنك إضافة أو حذف القائمة. يمكنك فقط التحقق منه وتعديله ، وإلا سيتم طرح استثناء.
رمز المفتاح: List list = Arrays.asList(strArray);
private void testArraycastToListerRor () {String [] strarray = new string [2] ؛ قائمة قائمة = arrays.aslist (strarray) ؛ // إدراج بيانات في قائمة القائمة المحولة (1 ") ؛ system.out.println (list) ؛ }نتائج التنفيذ:
استثناء في الموضوع "الرئيسي" java.lang.unsupportedOperationException
في java.util.abstractlist.add (AbstractList.java:148)
في java.util.abstractlist.add (AbstractList.java:108)
في com.darwin.junit.calculator.testarraycasttoList (calculator.java:19)
في com.darwin.junit.calculator.main (calculator.java:44)
يلقي البرنامج استثناء في list.add(“1”) . UnsupportedOperationException.
تحليل العقل:
قيمة الإرجاع لـ Arrays.asList(strArray) هي فئة داخلية ثابتة java.util.Arrays class java.util.Arrays.ArrayList ، وهي ليست فئة java.util.ArrayList . لقد تم تعيين فئة java.util.Arrays.ArrayList set() ، get() ، contains() وطرق أخرى ، ولكن ليس لديها طريقة إضافة add() أو إزالة remove() ، لذلك فإن الاتصال add() سوف يتسبب في خطأ.
سيناريو الاستخدام: لا يمكن استخدام طريقة Arrays.asList(strArray) إلا بعد تحويل صفيف إلى قائمة. ليست هناك حاجة لإضافة أو حذف القيم الموجودة فيه ، ويستخدم فقط كمصدر بيانات للقراءة.
2. بعد تحويل الصفيف إلى قائمة ، فإنه يدعم طريقة إضافة وحذف وتعديل والبحث.
java.util.Arrays.ArrayList خلال مُنشئ ArrayList java.util.ArrayList قم بتحويل قيمة إرجاع Arrays.asList(strArray) .
رمز المفتاح: ArrayList<String> list = new ArrayList<String>(Arrays.asList(strArray)) ;
private void testArraycastToListright () {String [] strarray = new string [2] ؛ ArrayList <string> list = new ArrayList <String> (Arrays.aslist (Strarray)) ؛ list.add ("1") ؛ system.out.println (list) ؛ }نتيجة التنفيذ: تمت إضافة عنصر "1" بنجاح.
[NULL ، NULL ، 1]
سيناريو الاستخدام: بعد تحويل الصفيف إلى قائمة ، تحتاج إلى إضافة القائمة وحذفها وتعديلها والتحقق منها. يمكن استخدامه إذا لم يكن كمية البيانات الموجودة في القائمة كبيرة.
3. من خلال مجموعة أدوات التجميع. طريقة Addall () (الأكثر كفاءة)
قم بتحويل من خلال Collections.addAll(arrayList, strArray) ، قم بإنشاء قائمة بنفس الطول وفقًا لطول الصفيف ، ثم قم بتحويل العناصر الموجودة في الصفيف إلى ثنائي من خلال طريقة Collections.addAll() ، ثم إضافتها إلى القائمة. هذه هي الطريقة الأكثر كفاءة.
رمز المفتاح:
ArrayList <string> ArrayList = New ArrayList <string> (strarray.length) ؛ collections.addall (ArrayList ، Strarray) ؛
امتحان:
private void testArraycastToListEffent () {String [] strarray = new string [2] ؛ ArrayList <string> ArrayList = New ArrayList <string> (Strarray.length) ؛ Collections.addall (ArrayList ، Strarray) ؛ ArrayList.add ("1") ؛ System.out.println (ArrayList) ؛ }نتيجة التنفيذ: أيضًا تم إلحاق عنصر "1" بنجاح.
[NULL ، NULL ، 1]
سيناريو الاستخدام: بعد تحويل الصفيف إلى قائمة ، تحتاج إلى إضافة القائمة وحذفها وتعديلها والتحقق منها. عندما يكون حجم بيانات القائمة ضخمًا ، يفضل استخدامه ، مما يمكن أن يحسن سرعة التشغيل.
ملاحظة: قم بإرفاق الكود المصدري Collections.addAll() .
static static <T> boolean addall (مجموعة <؟ super t> c ، t ... عناصر) {boolean result = false ؛ بالنسبة إلى (العنصر t: العناصر) النتيجة | = c.add (عنصر) ؛ // النتيجة و c.add (عنصر) bitwise أو التشغيل ، ثم تعيين القيمة لنتيجة الإرجاع ؛ }لخص
ما سبق هو المحتوى الكامل لهذه المقالة. آمل أن يكون لمحتوى هذه المقالة قيمة مرجعية معينة لدراسة أو عمل الجميع. إذا كان لديك أي أسئلة ، فيمكنك ترك رسالة للتواصل. شكرا لك على دعمك إلى wulin.com.