Sobes.tech
Junior — Middle

Se chiamo il metodo toList() su uno Stream, il risultato sarà un ArrayList o un altro tipo di collezione?

sobes.tech AI

Risposta dell'AI

Il metodo toList() nell'interfaccia Stream (a partire da Java 16) restituisce una lista immutabile, ma il tipo specifico di collezione non è garantito e non è necessariamente un ArrayList. A differenza di collect(Collectors.toList()), che di solito restituisce un ArrayList, Stream.toList() può restituire un altro tipo di lista, ottimizzato per l'implementazione specifica.

Esempio:

List<String> list = Stream.of("a", "b", "c").toList();
// la lista è immutabile, tentare di modificarla provocherà UnsupportedOperationException

Pertanto, non si può fare affidamento sul fatto che il risultato sia esattamente un ArrayList. Se si necessita di un ArrayList, è meglio usare collect(Collectors.toList()).