Introdução
Neste laboratório, você aprenderá como verificar efetivamente se uma lista em Java está vazia. Exploraremos o método padrão isEmpty(), verificaremos o tamanho da lista usando size(), e entenderemos como lidar com cenários potenciais de listas nulas para escrever código robusto e confiável.
Usar isEmpty() para Verificação da Lista
Nesta etapa, aprenderemos como verificar se uma lista em Java está vazia usando o método isEmpty(). Esta é uma tarefa comum em programação, e isEmpty() fornece uma maneira clara e eficiente de fazê-lo.
Primeiro, vamos criar um novo arquivo Java chamado ListCheck.java no seu diretório ~/project. Você pode fazer isso clicando com o botão direito no Explorador de Arquivos à esquerda e selecionando "Novo Arquivo", em seguida, digitando ListCheck.java.
Agora, abra ListCheck.java no editor e adicione o seguinte código:
import java.util.ArrayList;
import java.util.List;
public class ListCheck {
public static void main(String[] args) {
// Create an empty list
List<String> emptyList = new ArrayList<>();
// Create a list with elements
List<String> populatedList = new ArrayList<>();
populatedList.add("Apple");
populatedList.add("Banana");
// Check if the lists are empty using isEmpty()
System.out.println("Is emptyList empty? " + emptyList.isEmpty());
System.out.println("Is populatedList empty? " + populatedList.isEmpty());
}
}
Vamos analisar este código:
import java.util.ArrayList;eimport java.util.List;: Estas linhas importam as classes necessárias para trabalhar com listas.List<String> emptyList = new ArrayList<>();: Esta linha cria uma nova lista vazia que pode conter objetosString.List<String> populatedList = new ArrayList<>();: Esta linha cria outra nova lista.populatedList.add("Apple");epopulatedList.add("Banana");: Estas linhas adicionam elementos àpopulatedList.System.out.println("Is emptyList empty? " + emptyList.isEmpty());: Esta linha chama o métodoisEmpty()naemptyList. O métodoisEmpty()retornatruese a lista não tiver elementos efalsecaso contrário. O resultado é então impresso no console.System.out.println("Is populatedList empty? " + populatedList.isEmpty());: Esta linha faz o mesmo parapopulatedList.
Salve o arquivo ListCheck.java.
Agora, abra o Terminal na parte inferior da WebIDE e certifique-se de que você está no diretório ~/project. Você pode usar o comando cd ~/project se necessário.
Compile o código Java usando o comando javac:
javac ListCheck.java
Se não houver erros, um arquivo ListCheck.class será criado no diretório ~/project.
Finalmente, execute o programa Java compilado usando o comando java:
java ListCheck
Você deve ver uma saída semelhante a esta:
Is emptyList empty? true
Is populatedList empty? false
Esta saída confirma que isEmpty() identificou corretamente a lista vazia e a lista com elementos. Usar isEmpty() é a maneira preferida de verificar uma lista vazia em Java, pois é mais legível e potencialmente mais eficiente do que verificar o tamanho.
Verificar o Tamanho da Lista com size()
Na etapa anterior, aprendemos como verificar se uma lista está vazia usando isEmpty(). Embora isEmpty() seja ótimo para verificar se uma lista tem algum elemento, às vezes você precisa saber exatamente quantos elementos estão em uma lista. Para isso, Java fornece o método size().
Nesta etapa, modificaremos nosso arquivo ListCheck.java para usar o método size() e ver como ele funciona.
Abra o arquivo ListCheck.java no editor WebIDE, caso ainda não esteja aberto. Ele deve estar localizado no seu diretório ~/project.
Agora, vamos adicionar algumas linhas ao nosso método main para imprimir o tamanho de nossas listas. Adicione as seguintes linhas após as linhas onde você usou isEmpty():
import java.util.ArrayList;
import java.util.List;
public class ListCheck {
public static void main(String[] args) {
// Create an empty list
List<String> emptyList = new ArrayList<>();
// Create a list with elements
List<String> populatedList = new ArrayList<>();
populatedList.add("Apple");
populatedList.add("Banana");
// Check if the lists are empty using isEmpty()
System.out.println("Is emptyList empty? " + emptyList.isEmpty());
System.out.println("Is populatedList empty? " + populatedList.isEmpty());
// Get and print the size of the lists using size()
System.out.println("Size of emptyList: " + emptyList.size());
System.out.println("Size of populatedList: " + populatedList.size());
}
}
Adicionamos duas novas linhas:
System.out.println("Size of emptyList: " + emptyList.size());: Esta linha chama o métodosize()naemptyList. O métodosize()retorna o número de elementos na lista como um inteiro.System.out.println("Size of populatedList: " + populatedList.size());: Esta linha faz o mesmo parapopulatedList.
Salve o arquivo ListCheck.java.
Agora, volte para o Terminal no diretório ~/project. Precisamos recompilar o código Java modificado:
javac ListCheck.java
Se a compilação for bem-sucedida, execute o programa novamente:
java ListCheck
Você deve agora ver uma saída semelhante a esta:
Is emptyList empty? true
Is populatedList empty? false
Size of emptyList: 0
Size of populatedList: 2
Como você pode ver, size() relatou corretamente que emptyList tem 0 elementos e populatedList tem 2 elementos.
Embora você pudesse verificar se uma lista está vazia verificando se seu tamanho é 0 (list.size() == 0), usar isEmpty() é geralmente preferível por clareza e legibilidade. No entanto, size() é essencial quando você precisa saber o número exato de elementos em uma lista, por exemplo, ao iterar pela lista ou realizar cálculos com base no número de itens.
Lidar com Listas Nulas
Nas etapas anteriores, trabalhamos com listas que estavam vazias ou continham elementos. No entanto, na programação do mundo real, é possível que uma variável de lista seja null. Uma referência null significa que a variável não aponta para nenhum objeto na memória. Tentar chamar um método como isEmpty() ou size() em uma lista null resultará em uma NullPointerException, que é um erro comum em Java.
Nesta etapa, aprenderemos como lidar com segurança com listas null antes de tentar verificar se estão vazias ou obter seu tamanho.
Abra o arquivo ListCheck.java no editor WebIDE.
Vamos adicionar uma nova variável de lista e defini-la como null. Em seguida, demonstraremos o que acontece quando você tenta chamar métodos nela sem verificar se é null. Modifique seu método main para incluir o seguinte código:
import java.util.ArrayList;
import java.util.List;
public class ListCheck {
public static void main(String[] args) {
// Create an empty list
List<String> emptyList = new ArrayList<>();
// Create a list with elements
List<String> populatedList = new ArrayList<>();
populatedList.add("Apple");
populatedList.add("Banana");
// Create a null list
List<String> nullList = null;
// Check if the lists are empty using isEmpty()
System.out.println("Is emptyList empty? " + emptyList.isEmpty());
System.out.println("Is populatedList empty? " + populatedList.isEmpty());
// Get and print the size of the lists using size()
System.out.println("Size of emptyList: " + emptyList.size());
System.out.println("Size of populatedList: " + populatedList.size());
// --- This part will cause an error if uncommented ---
// System.out.println("Is nullList empty? " + nullList.isEmpty()); // This line will cause a NullPointerException
// System.out.println("Size of nullList: " + nullList.size()); // This line will also cause a NullPointerException
// ----------------------------------------------------
// Safely check for null before calling methods
System.out.println("\nSafely checking for null:");
if (nullList == null) {
System.out.println("nullList is null.");
} else {
System.out.println("Is nullList empty? " + nullList.isEmpty());
System.out.println("Size of nullList: " + nullList.size());
}
if (emptyList == null) {
System.out.println("emptyList is null.");
} else {
System.out.println("Is emptyList empty? " + emptyList.isEmpty());
System.out.println("Size of emptyList: " + emptyList.size());
}
}
}
Adicionamos:
List<String> nullList = null;: Isso declara uma variável de lista, mas define seu valor comonull.- Linhas comentadas que causariam uma
NullPointerException. - Uma instrução
if:if (nullList == null). Esta é a parte crucial para lidar comnull. Verificamos se a variávelnullListénullantes de tentar chamar qualquer método nela. Se fornull, imprimimos uma mensagem. Se não fornull, podemos chamar com segurançaisEmpty()esize(). - Também adicionamos uma verificação semelhante para
emptyListpara mostrar que a condiçãoiffunciona corretamente também para listas não nulas.
Salve o arquivo ListCheck.java.
Compile o código modificado no Terminal:
javac ListCheck.java
Execute o programa:
java ListCheck
A saída deve ser semelhante a esta:
Is emptyList empty? true
Is populatedList empty? false
Size of emptyList: 0
Size of populatedList: 2
Safely checking for null:
nullList is null.
Is emptyList empty? true
Size of emptyList: 0
Observe que verificamos com sucesso se nullList era null e evitamos a NullPointerException. Também confirmamos que a verificação funciona corretamente para emptyList.
Lembre-se sempre de verificar se uma lista (ou qualquer referência de objeto) pode ser null antes de chamar métodos nela. Esta é uma prática fundamental em Java para evitar erros de NullPointerException. Um padrão comum é if (myList != null && !myList.isEmpty()) para verificar se uma lista não é nula e não está vazia em uma condição.
Resumo
Neste laboratório, aprendemos como verificar se uma lista em Java está vazia. Começamos explorando o método isEmpty(), que fornece uma maneira direta e eficiente de determinar se uma lista contém algum elemento. Criamos listas de exemplo, tanto vazias quanto preenchidas, e usamos isEmpty() para verificar seu estado, observando a saída booleana.
Também examinamos como usar o método size() para verificar se uma lista está vazia, comparando seu tamanho a zero. Este método retorna o número de elementos na lista, e um tamanho de 0 indica uma lista vazia. Finalmente, abordamos o aspecto crucial de lidar com listas nulas antes de tentar verificar se estão vazias, demonstrando como prevenir NullPointerException adicionando uma verificação nula.



