处理多个 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);
}
}
}
}
让我们看看这个版本的改动之处:
- 我们在列表中又添加了一个非
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
。