Подсчет нулевых (null) элементов
На предыдущих этапах мы научились определять нулевые (null) элементы в массиве, используя как цикл for
, так и Stream API. Иногда, вместо того чтобы просто определить нулевые элементы, вам может понадобиться узнать, сколько именно таких элементов содержится в массиве. На этом этапе мы научимся подсчитывать количество нулевых элементов с помощью Stream API.
Stream API предоставляет удобный метод count()
, который, примененный к потоку, возвращает количество элементов в этом потоке. Мы можем сочетать этот метод с операцией filter()
, которую мы использовали ранее, чтобы подсчитать только нулевые элементы.
Модифицируем нашу программу HelloJava.java
еще раз, чтобы подсчитать нулевые элементы и вывести общее количество.
-
Откройте файл HelloJava.java
в редакторе WebIDE.
-
Замените существующий код следующим:
import java.util.Arrays;
import java.util.Objects;
public class HelloJava {
public static void main(String[] args) {
String[] names = new String[5];
names[0] = "Alice";
names[1] = "Bob";
names[2] = null;
names[3] = "Charlie";
names[4] = null;
System.out.println("Counting null values using Stream API:");
// Convert the array to a Stream
long nullCount = Arrays.stream(names)
// Filter for null elements
.filter(Objects::isNull)
// Count the remaining elements (which are null)
.count();
System.out.println("Total number of null elements: " + nullCount);
}
}
Вот что нового:
long nullCount = ... .count();
: После фильтрации потока так, чтобы он содержал только нулевые элементы, мы вызываем терминальную операцию count()
. Эта операция возвращает количество элементов в отфильтрованном потоке в виде значения типа long
, которое мы сохраняем в переменной nullCount
.
System.out.println("Total number of null elements: " + nullCount);
: Эта строка выводит итоговое количество нулевых элементов.
-
Сохраните файл HelloJava.java
.
-
Скомпилируйте программу в терминале:
javac HelloJava.java
-
Запустите программу:
java HelloJava
Вы должны увидеть следующий вывод:
Counting null values using Stream API:
Total number of null elements: 2
Этот вывод показывает, что наша программа правильно подсчитала два нулевых элемента в массиве. Использование методов filter()
и count()
Stream API вместе является эффективным и читаемым способом подсчета определенных типов элементов в коллекции, включая нулевые значения.
Теперь вы узнали три разных способа обработки нулевых значений в массиве на Java: использование традиционного цикла for
для проверки каждого элемента, использование Stream API для фильтрации и определения нулевых элементов, а также использование Stream API для фильтрации и подсчета нулевых элементов. Эти методы являются фундаментальными для написания надежного кода на Java, который избавляет от ошибок NullPointerException
.