Junior — Middle
Jeśli wywołam metodę toList() na Stream, czy wynikiem będzie ArrayList, czy inny typ kolekcji?
sobes.tech AI
Odpowiedź od AI
Metoda toList() w interfejsie Stream (począwszy od Java 16) zwraca niezmienną listę, ale konkretny typ kolekcji nie jest gwarantowany i nie musi być ArrayList. W przeciwieństwie do collect(Collectors.toList()), które zazwyczaj zwraca ArrayList, Stream.toList() może zwracać inny typ listy, zoptymalizowany dla konkretnej implementacji.
Przykład:
List<String> list = Stream.of("a", "b", "c").toList();
// lista jest niezmienna, próba jej modyfikacji spowoduje UnsupportedOperationException
W związku z tym nie można polegać na tym, że wynik będzie dokładnie ArrayList. Jeśli potrzebujesz dokładnie ArrayList, lepiej użyć collect(Collectors.toList()).