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()).