Junior — Middle
Кога започва потоковата обработка с колекцията?
sobes.tech AI
Отговор от AI
Изпълнението на потоковата обработка (stream) в Java се случва в момента на извикване на терминална операция. До това време всички междинни операции (map, filter, sorted и т.н.) са лениви и не се изпълняват.
Например:
List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.stream()
.filter(s -> s.startsWith("a"))
.map(String::toUpperCase);
// Тук потокът все още не е стартирал
List<String> result = stream.collect(Collectors.toList()); // Терминална операция — стартира обработката
Следователно, потоковата обработка започва при извикване на терминална операция като collect(), forEach(), reduce(), count() и други.