Статьи

Герой без накидки: Stream API

Давайте узнаем больше об этом герое Java!

В этой статье мы поговорим о API-интерфейсе Stream, добавленном в Java 8, и о том, как он изменил способ работы программ на Java. Это добавило аккуратности, а также сделало код более читабельным. Это помогает проводить функциональное программирование на Java. Итак, без лишних слов, давайте узнаем больше об этом драгоценном камне Java!


Вам также может понравиться:
Ваше руководство по потокам Java [Учебники и статьи]

Что такое Stream API?

Stream API, включенный в Java 8, используется для обработки collections of Objects. Это поток объектов, на котором в конвейере применяются различные методы для получения результата. Проще говоря, он проходит через данные Collection<Object>и применяет различные методы Objectдля объединения их в желаемый результат, не влияя на оригинал Object.

Что обеспечивает поток

Stream ничего не хранит; вместо этого он работает с данным Collection, Arrayили вводом / выводом (да, вы можете использовать его для ввода / вывода). Не изменяя исходные данные, он применяет методы к данным. Ленивая оценка помогает добавить несколько intermediate operationsбез запуска полного потока. Оценивается только после добавления terminal operation. это добавляет аккуратность и делает коды чище. Создайте более полный код. И многое другое

Что нужно знать, прежде чем идти

Stream позволяет практиковать функциональное программирование на Java. Это означает, что вам должно быть удобно с функциональными интерфейсами и лямбда-выражениями. Если вы хорошо понимаете эти концепции, никто не сможет помешать вам понять API-интерфейс Stream. Вы можете найти примеры кода на GitHub или просмотреть полный проект здесь .

Как стримить

Потоки могут быть реализованы несколькими способами. Несколько фокусов:

  • Коллекции stream()и parallelStream()методы
  • С помощью Arrays.stream(Object[])
  • Статические фабричные методы записи потока , такие как Stream.of(Object[]), IntStream.range(int, int)илиStream.iterate(Object, UnaryOperator)
  • Потоковая строка файла BufferedReader.lines()
  • Потоки случайных чисел могут быть получены из Random.ints().

Первая и вторая пули — это то, что мы используем чаще всего. Для нашего обсуждения мы будем придерживаться Collection#steam()метода. Например:


Джава