Junior — Middle
76
Какие типы данных и операции обрабатывает структура данных Stream в Java?
Answer from AI
sobes.tech AI
В Java структура данных Stream представляет последовательность элементов, поддерживающую различные операции для обработки данных в функциональном стиле.
Типы данных:
Stream<T>работает с любыми объектами типаT.- Есть специализированные потоки для примитивов:
IntStream,LongStream,DoubleStream.
Основные операции:
-
Промежуточные (intermediate) — возвращают новый поток, позволяют строить цепочку операций:
filter(Predicate)— фильтрация элементов.map(Function)— преобразование элементов.sorted()— сортировка.distinct()— удаление дубликатов.limit(long maxSize)— ограничение количества элементов.
-
Терминальные (terminal) — завершают обработку и возвращают результат:
collect(Collector)— сбор элементов в коллекцию.forEach(Consumer)— выполнение действия для каждого элемента.reduce(BinaryOperator)— свертка элементов.count()— подсчет элементов.
Пример:
List<String> names = Arrays.asList("Anna", "Bob", "Charlie", "David");
List<String> filtered = names.stream()
.filter(name -> name.startsWith("A"))
.map(String::toUpperCase)
.collect(Collectors.toList());
System.out.println(filtered); // [ANNA]
Таким образом, Stream позволяет удобно и эффективно обрабатывать коллекции и другие источники данных с помощью цепочек операций.