نسخ المجموعات بصورة ثابتة
أنشئ نسخة ثابتة من أي مجموعة في استدعاء واحد.
مقارنة الكود
✕ Java 8
List<String> copy =
Collections.unmodifiableList(
new ArrayList<>(original)
);
✓ Java 10+
List<String> copy =
List.copyOf(original);
هل ترى مشكلة في هذا الكود؟ أخبرنا.
لماذا يتفوق الأسلوب الحديث
نسخ ذكي
يتجاوز النسخ إذا كان المصدر ثابتاً بالفعل.
استدعاء واحد
لا حاجة لإنشاء ArrayList يدوياً ثم تغليفه.
أي مجموعة
يقبل أي Collection كمدخل، دون الحاجة إلى تحويل ArrayList وسيط.
الأسلوب القديم
نسخ يدوي + تغليف
الأسلوب الحديث
List.copyOf()
منذ JDK
10
الصعوبة
مبتدئ
دعم JDK
نسخ المجموعات بصورة ثابتة
متاح
متاح على نطاق واسع منذ JDK 10 (مارس 2018)
كيف يعمل
تُنشئ List.copyOf() و Set.copyOf() و Map.copyOf() نسخاً ثابتة من المجموعات الموجودة. إذا كان المصدر مجموعةً ثابتةً بالفعل فلن تُنشأ نسخة.
توثيق ذو صلة
إثبات