Sobes.tech
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() и други.