Sobes.tech
Junior — Middle

Als ik de methode toList() op een Stream aanroep, is het resultaat een ArrayList of een ander type collectie?

sobes.tech AI

Antwoord van AI

De toList()-methode in de Stream-interface (vanaf Java 16) retourneert een onveranderlijke lijst, maar het specifieke type collectie wordt niet gegarandeerd en hoeft niet per se een ArrayList te zijn. In tegenstelling tot collect(Collectors.toList()), dat meestal een ArrayList retourneert, kan Stream.toList() een ander type lijst retourneren, geoptimaliseerd voor de specifieke implementatie.

Voorbeeld:

List<String> list = Stream.of("a", "b", "c").toList();
// lijst is onveranderlijk, een poging om deze te wijzigen zal UnsupportedOperationException veroorzaken

Daarom is het niet betrouwbaar om te veronderstellen dat het resultaat precies een ArrayList is. Als een ArrayList nodig is, is het beter om collect(Collectors.toList()) te gebruiken.