null 要素の数をカウントする
前のステップでは、for
ループと Stream API の両方を使用して配列内の null
要素を識別する方法を学びました。時には、null
要素を単に識別するだけでなく、配列内に実際に何個の null
要素があるかを知る必要がある場合があります。このステップでは、Stream API を使用して null
要素の数をカウントする方法を学びます。
Stream API には count()
という便利なメソッドがあり、これをストリームに適用すると、そのストリーム内の要素の数を返します。これを前に使用した filter()
操作と組み合わせることで、null
要素のみをカウントすることができます。
HelloJava.java
プログラムをもう一度変更して、null
要素をカウントし、合計数を出力しましょう。
-
WebIDE エディタで HelloJava.java
ファイルを開きます。
-
既存のコードを以下のコードに置き換えます。
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();
: ストリームをフィルタリングして null
要素のみを含むようにした後、count()
という終端操作を呼び出します。この操作は、フィルタリングされたストリーム内の要素の数を long
値として返し、それを nullCount
変数に格納します。
System.out.println("Total number of null elements: " + nullCount);
: この行は、null
要素の最終的なカウント数を出力します。
-
HelloJava.java
ファイルを保存します。
-
ターミナルでプログラムをコンパイルします。
javac HelloJava.java
-
プログラムを実行します。
java HelloJava
次のような出力が表示されるはずです。
Counting null values using Stream API:
Total number of null elements: 2
この出力は、プログラムが配列内の 2 つの null
要素を正しくカウントしたことを示しています。Stream API の filter()
メソッドと count()
メソッドを組み合わせることは、コレクション内の特定のタイプの要素(null
値を含む)をカウントするための効率的で読みやすい方法です。
これで、Java 配列内の null
値を処理する 3 つの異なる方法を学びました。つまり、従来の for
ループを使用して各要素をチェックする方法、Stream API を使用して null
要素をフィルタリングして識別する方法、および Stream API を使用して null
要素をフィルタリングしてカウントする方法です。これらのテクニックは、NullPointerException
を回避する堅牢な Java コードを書くための基本的なものです。