استخدم Gatherers للعمليات الوسيطة المخصصة في Stream.
مقارنة الكود
✕ Java 8
// Sliding window: manual implementation
List<List<T>> windows = new ArrayList<>();
for (int i = 0; i <= list.size()-3; i++) {
windows.add(
list.subList(i, i + 3));
}
✓ Java 24+
var windows = stream
.gather(
Gatherers.windowSliding(3)
)
.toList();
هل ترى مشكلة في هذا الكود؟ أخبرنا.
لماذا يتفوق الأسلوب الحديث
قابل للتركيب
تتركّب Gatherers مع عمليات Stream الأخرى.
عمليات مدمجة
windowFixed و windowSliding و fold و scan جاهزة للاستخدام.
قابل للتوسيع
اكتب Gatherers مخصصة لأي تحويل وسيط.
الأسلوب القديم
Collector مخصص
الأسلوب الحديث
gather()
منذ JDK
24
الصعوبة
متقدم
دعم JDK
تجميعات Stream
متاح
أُنهيت في JDK 24 (JEP 485، مارس 2025).
كيف يعمل
Gatherers عمليات Stream وسيطة جديدة يمكنها التعبير عن تحويلات معقدة مثل النوافذ المنزلقة والمجموعات ذات الحجم الثابت وعمليات المسح التي كانت مستحيلةً بعمليات Stream القياسية.
توثيق ذو صلة