مُجمِّعات غير قابلة للتعديل
جمّع مباشرةً إلى قائمة غير قابلة للتعديل باستخدام stream.toList().
مقارنة الكود
✕ Java 8
List<String> list = stream.collect(
Collectors.collectingAndThen(
Collectors.toList(),
Collections::unmodifiableList
)
);
✓ Java 16+
List<String> list = stream.toList();
هل ترى مشكلة في هذا الكود؟ أخبرنا.
لماذا يتفوق الأسلوب الحديث
الأقصر على الإطلاق
stream.toList() لا تحتاج استدعاء collect() أو استيراد Collectors.
ثابتة
لا يمكن تعديل النتيجة — لا طفرات عرضية.
مقروءة
تُقرأ بشكل طبيعي كخطوة نهائية في أي خط Stream.
الأسلوب القديم
collectingAndThen
الأسلوب الحديث
stream.toList()
منذ JDK
16
الصعوبة
متوسط
دعم JDK
مُجمِّعات غير قابلة للتعديل
متاح
متاح على نطاق واسع منذ JDK 16 (مارس 2021)
كيف يعمل
أضاف Java 10 الدوالَ toUnmodifiableList() و toUnmodifiableSet() و toUnmodifiableMap() لاستبدال غلاف collectingAndThen المطوّل. بالنسبة للقوائم تحديداً، توفر stream.toList() في Java 16 بديلاً أبسط — دون استدعاء collect() على الإطلاق. استخدم toUnmodifiableSet() و toUnmodifiableMap() لأنواع المجموعات الأخرى.
توثيق ذو صلة