Статьи с тэгом «Stream API»

Stream API в Java

28 апреля 2018

В Java 8 появилось довольно важное нововведение под названием Stream. И здесь имеются в виду не потоки ввода/вывода. Stream - это абстракция, позволяющая с любыми объектами работать как с потоками данных. Порой это чем-то похоже на выполнение запросов к БД. Рассмотрим несколько типовых задач, с которыми часто сталкивается каждый разработчик.

Объединение нескольких строк в одну

Наверняка вам приходилось генерить одну строку из нескольких других, разделённых запятыми. При этом после последнего элемента запятой быть не должно. Знакомо? В java 8 это делается так:

Stream.of("Linux""Windows""Mac")
    .collect(Collectors.joining(", ")));

Мы создаём новый поток из простых строк, а затем собираем их в одну при помощи метода collect(). В результате получим следующую строку:

Читать полностью...

Тэги: Collections, Java 8, Stream API.


Пример standalone-приложения на Spring

14 января 2018

Рассмотрим базовые возможности dependency injection (внедрения зависимостей), которые открывает нам Spring.

Создадим обычный maven-проект, где в pom.xml добавим сам Spring (артефакт spring-context) и секцию build со стандартным плагином maven-compiler-plugin, в котором указываем версию java в source и target.

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.3.13.RELEASE</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>

Теперь создадим главный класс TestApp, который будет точкой запуска приложения.

Читать полностью...

Тэги: Java, Java 8, Spring, Stream API, maven, ООП.


Генерация случайных чисел при помощи Stream API

10 января 2018

В Java 8 у класса java.util.Random появился набор удобных методов для генерации стримов (Stream) случайных чисел для всех основных числовых типов. Например:

private List<Integer> randomIntsGenerator() {
    return new Random()
            .ints(2516)
            .boxed()
            .collect(Collectors.toList());
}

Читать полностью...

Тэги: Collections, Java 8, Stream API.


Генерация N одинаковых элементов через Stream API

4 января 2018

Предположим, вы хотите сгенерировать N одинаковых элементов. Это очень легко сделать в Java при помощи Stream API. Рассмотрим следующий метод:

private List<String> repeatedValueGenerator(String text, int count) {
    return Stream.generate(() -> text)
            .limit(count)
            .collect(Collectors.toList());
}

Читать полностью...

Тэги: Collections, Java 8, Stream API.