Değiştirilemez collector'lar
stream.toList() ile doğrudan değiştirilemez bir listeye toplayın.
Kod Karşılaştırması
✕ Java 8
List<String> list = stream.collect(
Collectors.collectingAndThen(
Collectors.toList(),
Collections::unmodifiableList
)
);
✓ Java 16+
List<String> list = stream.toList();
Bu kodda bir sorun mu gördünüz? Bize bildirin.
Modern yöntem neden daha iyi
En kısa yol
stream.toList() hiç collect() veya Collectors import gerektirmez.
Değişmez
Sonuç değiştirilemez — yanlışlıkla mutasyon olmaz.
Okunabilir
Herhangi bir stream hattının terminal adımı olarak doğal okunur.
Eski Yaklaşım
collectingAndThen
Modern Yaklaşım
stream.toList()
JDK'dan itibaren
16
Zorluk
Orta
JDK Desteği
Değiştirilemez collector'lar
Mevcut
JDK 16'dan itibaren geniş çapta kullanılabilir (Mart 2021)
Nasıl çalışır
Java 10, ayrıntılı collectingAndThen sarmalayıcısının yerini almak için toUnmodifiableList(), toUnmodifiableSet() ve toUnmodifiableMap() ekledi. Listeler için Java 16'nın stream.toList() yöntemi daha da basit bir alternatif sunar — hiç collect() çağrısına gerek yoktur. Diğer koleksiyon türleri için toUnmodifiableSet() ve toUnmodifiableMap() kullanın.
İlgili Belgeler