Lidar com Múltiplos Elementos Nulos
Na etapa anterior, percorremos com sucesso uma lista e identificamos os índices dos elementos null. Agora, vamos expandir isso e demonstrar como você pode lidar com esses elementos null. "Lidar" pode significar coisas diferentes dependendo da lógica do seu programa, como ignorar o elemento null, substituí-lo por um valor padrão ou realizar uma ação específica.
Nesta etapa, modificaremos nosso programa NullCheckList.java novamente. Desta vez, iteraremos pela lista e imprimiremos uma mensagem diferente para elementos não nulos em comparação com elementos nulos.
Abra o arquivo NullCheckList.java no editor WebIDE. Substitua o método main existente pelo seguinte código:
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);
}
}
}
}
Vamos analisar as mudanças nesta versão:
- Adicionamos mais um elemento não nulo (
"David") à lista.
for (String name : names): Este é um loop for aprimorado (também conhecido como loop for-each). É uma maneira conveniente de iterar sobre elementos em uma coleção sem usar um índice. Em cada iteração, a variável name conterá o elemento atual da lista names.
if (name == null): Ainda usamos o operador == para verificar se o elemento atual (name) é null.
System.out.println("Found a null element, skipping.");: Se o elemento for null, imprimimos uma mensagem indicando que estamos ignorando-o. Em uma aplicação real, você pode realizar uma ação diferente aqui, como registrar o nulo ou atribuir um valor padrão.
else { System.out.println("Processing name: " + name); }: Se o elemento não for null, entramos no bloco else e imprimimos uma mensagem indicando que estamos processando o nome não nulo.
Salve o arquivo (Ctrl+S ou Cmd+S).
Agora, compile e execute o programa modificado a partir do Terminal no diretório ~/project:
javac NullCheckList.java
java NullCheckList
Você deve ver a saída que processa os nomes não nulos e indica quando um elemento nulo é encontrado.
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
Este exemplo demonstra uma maneira básica de lidar com elementos null durante a iteração. Dependendo de suas necessidades específicas, você pode substituir null por uma string padrão, remover os elementos null da lista ou realizar outras operações. A chave é verificar se há null antes de tentar usar o elemento, pois tentar chamar métodos em um objeto null resultará em uma NullPointerException.