Рубрики
Без рубрики

Учебное пособие по Java – 11 Поток

Вступление В языке программирования Java тип коллекции, подобный списку, может быть… С пометкой java, новички, учебное пособие.

Вступление

В языке программирования Java типом коллекции, подобным списку, можно управлять с помощью Stream .

Необязательный Тип Данных

При использовании Stream существует тип данных, называемый Необязательным . Необязательный тип данных означает данные, допускающие нулевое значение. Некоторые Потоковые функции используют Необязательно в качестве возвращаемого значения.

Когда есть функция, которая возвращает Необязательный тип данных. Результат должен быть проверен с помощью функции isPresent() , чтобы убедиться, что значение существует или не равно null.

Использование Java Stream

Чтобы использовать Stream в Java, импортируйте пакет |/Stream .

import java.util.stream.*;

Затем преобразуйте коллекцию в Stream с помощью функции stream() .

// Basic syntax
collection_name.stream()

функция отображения

Функция map используется для создания механизма сопоставления в коллекции. В этом примере все данные внутри коллекции умножаются на 2.

List numbers = new ArrayList<>();

numbers.add(1);
numbers.add(2);
numbers.add(3);
numbers.add(4);

// using map function
List updatedNumbers = numbers
                .stream()
                .map((i) -> i * 2)
                .collect(Collectors.toList());

System.out.println(updatedNumbers);

Выход

[2, 4, 6, 8]

Основываясь на приведенном выше коде, лямбда-функция (анонимная функция) добавляется внутри функции map() для умножения всех данных внутри коллекции на 2. Лямбда-выражение, определенное внутри функции map() , является (i) -> i * 2 . Затем результат функции map() возвращает Поток , который может быть собран в список с помощью collect(Коллекторы.ToList()) функция.

функция суммирования

Функция sum полезна для вычисления суммы значений внутри коллекции. Эта функция подходит для коллекции, содержащей числовые значения.

В этом примере сумма используется в numbers collection.

Коллекция numbers определена в разделе map .

// using sum function
int sum = numbers.stream().mapToInt(i -> i).sum();
System.out.println(sum);

Выход

10

Основываясь на приведенном выше коде, тип данных результата sum возвращается на основе типа коллекции. Потому что тип коллекции numbers представляет собой коллекцию целых чисел. Тип данных результата sum – integer.

средняя функция

Функция average используется для вычисления среднего значения значений внутри коллекции. Эта функция подходит для коллекции, содержащей числовые значения.

В этом примере среднее значение используется в numbers collection.

// using average method
OptionalDouble average = numbers.stream().mapToInt(i -> i).average();
// check if the value is exists
if (average.isPresent()) {
    System.out.println(average.getAsDouble());
}

Выход

2.5

Основываясь на приведенном выше коде, средний результат возвращает Необязательный тип данных. Чтобы проверить, существует ли значение, используйте функцию isPresent() , после чего к значению можно будет безопасно получить доступ.

максимальная и минимальная функция

Функция max используется для нахождения максимального значения. Функция main используется для нахождения минимального значения.

В этом примере эти функции используются в коллекции numbers .

Optional max = numbers.stream().max(Comparator.naturalOrder());
Optional min = numbers.stream().min(Comparator.naturalOrder());

if (max.isPresent() && min.isPresent()) {
    System.out.println("maximum value: " + max.get());
    System.out.println("minimum value: " + min.get());
}

Выход

maximum value: 4
minimum value: 1

На основе приведенного выше кода возвращается максимальное и минимальное значение. Поскольку обе эти функции возвращают Необязательный тип данных, используется функция isPresent() . Comparator.naturalOrder() используется внутри max() и min() функция для определения компаратора по умолчанию.

функция фильтра

Функция filter используется для выбора некоторых значений на основе определенных критериев или условий.

В этом примере функция filter используется для выбора только четных значений в коллекции numbers .

// using filter to filter only even values
List integers = numbers
                .stream()
                .filter(integer -> integer % 2 == 0)
                .collect(Collectors.toList());
System.out.println(integers);

Выход

[2, 4]

Основываясь на приведенном выше коде, возвращаемое значение из функции filter() представляет собой Поток , значения которого можно собирать с помощью collect(Коллекторы.ToList()) . Результат работы функции filter() содержит только четное значение.

Функция allMatch

Функция allMatch используется для проверки того, все значения внутри коллекции соответствуют определенным критериям или условиям.

В этом примере allMatch используется для проверки четности всех значений внутри коллекции numbers .

// using allMatch to check if all values is even
boolean allMatch = numbers.stream().allMatch(integer -> integer % 2 == 0);
System.out.println(allMatch);

Выход

false

Основываясь на приведенном выше коде, коллекция numbers ( [1,2,3,4] ) имеет четные значения, но других значений нет, поэтому возвращается false .

любая функция сопоставления

Функция any Match используется для проверки соответствия определенного значения определенным критериям или условию.

В этом примере any Match используется для проверки четности определенного значения в коллекции numbers |/.

// using anyMatch to check if a certain value is even
boolean anyMatch = numbers.stream()
               .anyMatch(integer -> integer % 2 == 0);
System.out.println(anyMatch);

Выход

true

Основываясь на приведенном выше коде, внутри numbers есть четное значение коллекция таким образом, возвращается значение true .

отсортированная функция

Функция sorted используется для сортировки значений внутри коллекции. По умолчанию функция sorted сортирует значение от наименьшего к наибольшему значению.

В этом примере функция sorted используется для сортировки значения внутри коллекции myNums .

List myNums = new ArrayList<>();
myNums.add(44);
myNums.add(24);
myNums.add(1);
myNums.add(19);

// using sorted to sort the collection
List sortedNums = myNums.stream().sorted().collect(Collectors.toList());
System.out.println("Sorted list: " + sortedNums);

Выход

Sorted list: [1, 19, 24, 44]

На основе приведенного выше кода значение сортируется от наименьшего значения к наибольшему значению.

Записи

  • Используйте функции Stream в зависимости от вариантов использования.
  • Когда функция Stream возвращает Необязательный тип данных, проверьте существование значения с помощью is Present() , чтобы убедиться, что значение существует или не равно null.

Это заключительная часть серии учебных пособий по java basic в этом блоге. Я надеюсь, что эта серия учебных пособий по Java basic будет полезна для изучения языка программирования Java 😀 .

Источники

  • Узнайте больше о Java Stream по этой ссылке //.

Я надеюсь, что эта статья будет полезна для изучения языка программирования Java. Если у вас есть какие-либо мысли или комментарии, вы можете написать в разделе обсуждения ниже.

Оригинал: “https://dev.to/nadirbasalamah/java-tutorial-11-stream-3a3n”