Junior — Middle
Dacă apelez metoda toList() pe un Stream, va fi rezultatul un ArrayList sau un alt tip de colecție?
sobes.tech AI
Răspuns de la AI
Metoda toList() din interfața Stream (începând cu Java 16) returnează o listă imutabilă, dar tipul specific de colecție nu este garantat și nu trebuie să fie neapărat un ArrayList. Spre deosebire de collect(Collectors.toList()), care de obicei returnează un ArrayList, Stream.toList() poate returna un alt tip de listă, optimizat pentru implementarea specifică.
Exemplu:
List<String> list = Stream.of("a", "b", "c").toList();
// lista este imutabilă, încercarea de a o modifica va provoca UnsupportedOperationException
Prin urmare, nu se poate conta pe faptul că rezultatul va fi exact un ArrayList. Dacă este nevoie de un ArrayList, este mai bine să folosiți collect(Collectors.toList()).