Introdução
Neste laboratório, você aprenderá como verificar se uma List Java contém elementos null. Exploraremos diferentes métodos para alcançar isso, começando com o método direto contains(). Você aprenderá como usar contains(null) para determinar rapidamente a presença de um valor nulo em uma lista.
Após a verificação inicial, o laboratório irá guiá-lo através da iteração sobre uma lista para verificar manualmente cada elemento em busca de nulos. Essa abordagem oferece mais controle e permite lidar com cenários com múltiplos elementos nulos, que também serão abordados. Ao final deste laboratório, você terá uma sólida compreensão de várias técnicas para identificar nulos dentro de listas Java.
Usar contains() para Verificação de Nulo
Nesta etapa, exploraremos como verificar a presença de elementos null dentro de uma List Java usando o método contains(). Embora contains() seja geralmente usado para verificar elementos específicos, ele também pode ser usado para ver se uma List contém null.
Primeiro, vamos criar um novo arquivo Java. No Explorador de Arquivos à esquerda, clique com o botão direito no diretório ~/project, selecione "Novo Arquivo" e nomeie-o NullCheckList.java.
Agora, abra NullCheckList.java no editor e adicione o 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");
// Check if the list contains null using contains()
boolean containsNull = names.contains(null);
// Print the result
System.out.println("Does the list contain null? " + containsNull);
}
}
Vamos detalhar as novas partes deste código:
import java.util.List;eimport java.util.ArrayList;: Estas linhas importam as classes necessárias para trabalhar comListeArrayList.List<String> names = new ArrayList<>();: Isso cria um novoArrayListque pode conter objetosString. Nós o declaramos como umaListporqueListé uma interface queArrayListimplementa.names.add(null);: Esta linha adiciona explicitamente um valornullà nossa lista.boolean containsNull = names.contains(null);: Este é o núcleo desta etapa. Chamamos o métodocontains()na listanames, passandonullcomo argumento. O método retornatruese a lista contémnullefalsecaso contrário. O resultado é armazenado em uma variável booleanacontainsNull.System.out.println("Does the list contain null? " + containsNull);: Esta linha imprime o resultado da nossa verificação no console.
Salve o arquivo (Ctrl+S ou Cmd+S).
Agora, vamos compilar e executar o programa. Abra o Terminal na parte inferior da WebIDE. Certifique-se de estar no diretório ~/project.
Compile o código usando javac:
javac NullCheckList.java
Se a compilação for bem-sucedida (nenhuma saída significa sucesso), execute o código compilado usando java:
java NullCheckList
Você deve ver a saída indicando se a lista contém null.
Iterar pela Lista para Encontrar Nulos
Na etapa anterior, usamos o método contains() para verificar se uma lista contém null. Embora simples, este método apenas nos diz se null está presente, não onde está ou quantas vezes aparece. Uma maneira mais comum e flexível de lidar com elementos null em uma lista é iterar pela lista usando um loop e verificar cada elemento individualmente.
Nesta etapa, modificaremos nosso programa NullCheckList.java para percorrer a lista e identificar a posição (índice) de quaisquer elementos null.
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
System.out.println("Checking list for null elements:");
// Loop through the list using a for loop
for (int i = 0; i < names.size(); i++) {
// Get the element at the current index
String name = names.get(i);
// Check if the element is null
if (name == null) {
System.out.println("Null found at index: " + i);
}
}
}
}
Vamos analisar as mudanças:
- Adicionamos outro elemento
nullà lista para demonstrar a localização de múltiplosnulls. for (int i = 0; i < names.size(); i++): Este é um loopforpadrão que itera do índice0até (mas não incluindo) o tamanho da listanames. A variávelirepresenta o índice atual.String name = names.get(i);: Dentro do loop,names.get(i)recupera o elemento no índice atualie o armazena na variávelname.if (name == null): Esta é a verificação crucial. Usamos o operador de igualdade==para comparar a variávelnamecomnull. Se forem iguais, significa que o elemento no índice atual énull.System.out.println("Null found at index: " + i);: Se umnullfor encontrado, esta linha imprime uma mensagem indicando o índice onde ele foi encontrado.
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 indicando os índices onde os elementos null foram encontrados na lista.
Checking list for null elements:
Null found at index: 1
Null found at index: 4
Essa abordagem nos dá informações mais detalhadas sobre os elementos null na lista, o que é frequentemente necessário para lidar com eles apropriadamente em seu programa.
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 loopforaprimorado (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ávelnameconterá o elemento atual da listanames.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 fornull, 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 fornull, entramos no blocoelsee 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.
Resumo
Neste laboratório, aprendemos como verificar se uma List Java contém elementos nulos. Exploramos o uso do método contains() com null como argumento, o que fornece uma maneira direta de determinar a presença de um único elemento nulo.
Criamos um ArrayList de exemplo, adicionamos elementos válidos e um valor nulo e, em seguida, usamos names.contains(null) para realizar a verificação. O resultado foi impresso no console, demonstrando a eficácia deste método para uma verificação básica de nulos dentro de uma lista.



