複数の null
要素を処理する
前のステップでは、リストをループして null
要素のインデックスを特定することに成功しました。今度はそれを拡張して、これらの null
要素をどのように処理するかを示します。「処理する」とは、プログラムのロジックによって異なります。例えば、null
要素をスキップしたり、デフォルト値で置き換えたり、特定のアクションを実行したりすることができます。
このステップでは、再度 NullCheckList.java
プログラムを修正します。今回は、リストを反復処理し、null
要素と非 null
要素に対して異なるメッセージを出力します。
WebIDE のエディターで NullCheckList.java
ファイルを開きます。既存の main
メソッドを以下のコードに置き換えます。
import java.util.List;
import java.util.ArrayList;
public class NullCheckList {
public static void main(String[] args) {
// Create a List and add some elements, including null
List<String> names = new ArrayList<>();
names.add("Alice");
names.add(null); // Adding a null element
names.add("Bob");
names.add("Charlie");
names.add(null); // Adding another null element
names.add("David");
System.out.println("Processing list elements:");
// Loop through the list using a for-each loop
for (String name : names) {
// Check if the element is null
if (name == null) {
System.out.println("Found a null element, skipping.");
} else {
// If the element is not null, process it
System.out.println("Processing name: " + name);
}
}
}
}
このバージョンの変更点を見てみましょう。
- リストにもう 1 つ非
null
要素 ("David"
) を追加しました。
for (String name : names)
:これは拡張 for
ループ(for-each ループとも呼ばれます)です。インデックスを使用せずにコレクション内の要素を反復処理する便利な方法です。各反復で、変数 name
は names
リストの現在の要素を保持します。
if (name == null)
:依然として ==
演算子を使って、現在の要素 (name
) が null
かどうかをチェックします。
System.out.println("Found a null element, skipping.");
:要素が null
の場合、スキップしていることを示すメッセージを出力します。実際のアプリケーションでは、ここで別のアクションを実行するかもしれません。例えば、null
をログに記録したり、デフォルト値を割り当てたりします。
else { System.out.println("Processing name: " + name); }
:要素が null
でない場合、else
ブロックに入り、非 null
の名前を処理していることを示すメッセージを出力します。
ファイルを保存します(Ctrl+S または Cmd+S)。
次に、~/project
ディレクトリのターミナルから修正したプログラムをコンパイルして実行します。
javac NullCheckList.java
java NullCheckList
非 null
の名前を処理し、null
要素に遭遇したときを示す出力が表示されるはずです。
Processing list elements:
Processing name: Alice
Found a null element, skipping.
Processing name: Bob
Processing name: Charlie
Found a null element, skipping.
Processing name: David
この例は、反復処理中に null
要素を処理する基本的な方法を示しています。特定のニーズに応じて、null
をデフォルトの文字列で置き換えたり、リストから null
要素を削除したり、他の操作を実行したりすることができます。重要なのは、要素を使用する前に null
をチェックすることです。null
オブジェクトに対してメソッドを呼び出そうとすると、NullPointerException
が発生します。