Collections Orta

Tek bir stream geçişinde iki toplama işlemi gerçekleştirin.

✕ Java 8
long count = items.stream().count();
double sum = items.stream()
    .mapToDouble(Item::price)
    .sum();
var result = new Stats(count, sum);
✓ Java 12+
var result = items.stream().collect(
    Collectors.teeing(
        Collectors.counting(),
        Collectors.summingDouble(Item::price),
        Stats::new
    )
);
Bu kodda bir sorun mu gördünüz? Bize bildirin.

Tek geçiş

Stream'i iki yerine bir kez işleyin.

🧩

Birleştirilebilir

Herhangi iki collector'ı birleştirme fonksiyonuyla bir araya getirin.

🔒

Değişmez sonuç

Doğrudan bir record veya değer nesnesine birleştirin.

Eski Yaklaşım
İki Geçiş
Modern Yaklaşım
teeing()
JDK'dan itibaren
12
Zorluk
Orta
Collectors.teeing()
Mevcut

JDK 12'den itibaren geniş çapta kullanılabilir (Mart 2019)

Collectors.teeing(), her elemanı iki alt collector'a gönderir ve sonuçları birleştirir. Bu sayede veriyi iki kez akıtmaktan veya değiştirilebilir bir biriktirici kullanmaktan kaçınılır.

Paylaş 𝕏 🦋 in