Junior — Middle
Kui ma kutsun meetodi toList() Streamil, kas on tulemuseks ArrayList või mõni muu kollektsiooni tüüp?
sobes.tech AI
Vastus AI-lt
Stream liidese toList() meetod (alates Java 16-st) tagastab muutmatu nimekirja, kuid konkreetne kollektsiooni tüüp ei ole garanteeritud ja see ei pruugi olla ArrayList. Erinevalt collect(Collectors.toList()), mis tavaliselt tagastab ArrayList, võib Stream.toList() tagastada teistsuguse nimekirja tüübi, mis on optimeeritud konkreetseks rakenduseks.
Näide:
List<String> list = Stream.of("a", "b", "c").toList();
// nimekiri on muutmatu, selle muutmine põhjustab UnsupportedOperationException
Seetõttu ei ole mõistlik loota, et tulemus on täpselt ArrayList. Kui on vaja just ArrayList, on parem kasutada collect(Collectors.toList()).