Sobes.tech
Назад к вопросам
Senior
7

Какие базовые классы и интерфейсы существуют для работы с потоками в Java?

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

В Java для работы с потоками (Streams) в пакете java.util.stream существуют ключевые интерфейсы и классы:

  • Stream<T> — основной интерфейс для последовательной обработки элементов. Позволяет выполнять операции фильтрации, преобразования, сортировки и агрегации.
  • IntStream, LongStream, DoubleStream — специализированные интерфейсы для работы с примитивными типами, чтобы избежать автоупаковки.
  • Collectors — класс с набором статических методов для сбора элементов потока в коллекции, строки, карты и т.д.
  • StreamSupport — класс для создания потоков из источников, поддерживающих Spliterator.

Для создания потоков часто используются методы:

  • Collection.stream() — для получения последовательного потока из коллекции.
  • Collection.parallelStream() — для параллельного потока.

Пример использования:

List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.stream();
List<String> upper = stream.map(String::toUpperCase).collect(Collectors.toList());

Также для многопоточности в Java есть класс Thread и интерфейс Runnable, но это уже про параллельное выполнение, а не про Stream API.