Junior — Middle
Тафовут байни усули toList() ва collect(Collectors.toList()) дар API Stream дар Java чист?
sobes.tech AI
Ҷавоб аз AI
Дар Java API Stream, усул collect(Collectors.toList()) усул стандартӣ барои ҷамъоварии унсурҳои ҷараён ба рӯйхат (List) мебошад. Он рӯйхати навро, ки ҳамаи унсурҳои ҷараёнро дар бар мегирад, бармегардонад.
Моддаи toList() дар Java 16 ворид шуд, ҳамчун роҳи кӯтоҳтар ва қулайтар барои ҷамъоварии унсурҳо ба рӯйхат. Вай ҳам рӯйхатро бармегардонад, аммо бо баъзе фарқиятҳо:
Collectors.toList()кафолат намедиҳад, ки рӯйхат чӣ гуна амалӣ карда мешавад ва метавонад, масалан,ArrayListбаргардонад.Stream.toList()рӯйхати беғараз (immutable) бармегардонад, ки тағир доданаш мумкин нест (масалан, илова кардан ё хориҷ кардани унсурҳо).
Масалан:
List<String> list1 = stream.collect(Collectors.toList()); // рӯйхати тағирёбанда
List<String> list2 = stream.toList(); // рӯйхати беғараз
list1.add("нав" ); // кор мекунад
list2.add("нав"); // ноком мешавад UnsupportedOperationException
Фарқияти асосӣ дар он аст, ки рӯйхати баргардондашаванда чӣ гуна тағирёбанда аст ва истифодаи он чӣ қадар қулай аст.