Sobes.tech
Junior — Middle

Bir Stream üzerinde toList() metodunu çağırırsam, sonuç bir ArrayList mi yoksa başka bir koleksiyon türü mü olur?

sobes.tech yapay zeka

AI'dan gelen yanıt

Stream arayüzündeki toList() yöntemi (Java 16'dan itibaren) değiştirilemez bir liste döner, ancak koleksiyonun belirli türü garanti edilmez ve mutlaka ArrayList olmak zorunda değildir. collect(Collectors.toList()) genellikle ArrayList dönerken, Stream.toList() başka bir liste türü dönebilir, bu da belirli uygulama için optimize edilmiştir.

Örnek:

List<String> list = Stream.of("a", "b", "c").toList();
// liste değiştirilemez, değiştirmeye çalışmak UnsupportedOperationException ile sonuçlanır

Bu nedenle, sonucu tam olarak ArrayList olarak güvenmek mümkün değildir. Eğer özellikle ArrayList gerekiyorsa, collect(Collectors.toList()) kullanmak daha iyidir.