Introdução
Neste laboratório, você aprenderá como verificar se um Set em Java está vazio. Exploraremos o método padrão isEmpty(), uma maneira simples e eficiente de determinar se um conjunto contém algum elemento.
Você também aprenderá como verificar o tamanho de um conjunto usando o método size() e entender como lidar com potenciais NullPointerException ao lidar com conjuntos nulos. Ao final deste laboratório, você estará proficiente em verificar a vaziedade de conjuntos Java em vários cenários.
Use isEmpty() para Verificação do Set
Nesta etapa, aprenderemos como verificar se um Set em Java está vazio usando o método isEmpty(). Um Set é uma coleção que não pode conter elementos duplicados. O método isEmpty() é uma maneira simples e eficiente de determinar se uma coleção contém algum elemento.
Primeiro, vamos criar um novo arquivo Java chamado
SetCheck.javano seu diretório~/project. Você pode fazer isso clicando com o botão direito no File Explorer à esquerda e selecionando "New File", depois digitandoSetCheck.java.Abra o arquivo
SetCheck.javano editor e adicione o seguinte código:import java.util.HashSet; import java.util.Set; public class SetCheck { public static void main(String[] args) { // Create a new HashSet Set<String> fruits = new HashSet<>(); // Check if the set is empty using isEmpty() boolean isEmptyBeforeAdd = fruits.isEmpty(); System.out.println("Is the fruits set empty before adding elements? " + isEmptyBeforeAdd); // Add some elements to the set fruits.add("Apple"); fruits.add("Banana"); fruits.add("Orange"); // Check if the set is empty after adding elements boolean isEmptyAfterAdd = fruits.isEmpty(); System.out.println("Is the fruits set empty after adding elements? " + isEmptyAfterAdd); } }Vamos detalhar as novas partes deste código:
import java.util.HashSet;eimport java.util.Set;: Estas linhas importam as classes necessárias para trabalhar comSeteHashSet.Set<String> fruits = new HashSet<>();: Esta linha cria um novo objetoHashSetchamadofruits. Especificamos<String>para indicar que este conjunto armazenará objetosString.boolean isEmptyBeforeAdd = fruits.isEmpty();: Esta linha chama o métodoisEmpty()no conjuntofruitse armazena o resultado (sejatrueoufalse) em uma variável booleana chamadaisEmptyBeforeAdd.fruits.add("Apple");: Esta linha adiciona a string "Apple" ao conjuntofruits.boolean isEmptyAfterAdd = fruits.isEmpty();: Esta linha verifica se o conjunto está vazio novamente após adicionar elementos.
Salve o arquivo
SetCheck.java(Ctrl+S ou Cmd+S).Agora, vamos compilar o programa Java. Abra o Terminal na parte inferior do WebIDE e certifique-se de estar no diretório
~/project. Em seguida, execute o seguinte comando:javac SetCheck.javaSe a compilação for bem-sucedida, você não verá nenhuma saída.
Finalmente, execute o programa compilado usando o comando
java:java SetCheckVocê deve ver uma saída semelhante a esta:
Is the fruits set empty before adding elements? true Is the fruits set empty after adding elements? falseEsta saída confirma que o método
isEmpty()relatou corretamente o estado do conjunto antes e depois de adicionar elementos.
Verificar o Tamanho do Set com size()
Na etapa anterior, aprendemos como verificar se um Set está vazio usando isEmpty(). Outra operação comum é descobrir quantos elementos estão em um Set. Para isso, usamos o método size(). O método size() retorna o número de elementos atualmente no conjunto.
Abra o arquivo
SetCheck.javano seu diretório~/projectno editor WebIDE.Modifique o método
mainpara incluir chamadas ao métodosize(). Substitua o métodomainexistente pelo seguinte código:import java.util.HashSet; import java.util.Set; public class SetCheck { public static void main(String[] args) { // Create a new HashSet Set<String> fruits = new HashSet<>(); // Check the size of the set before adding elements int sizeBeforeAdd = fruits.size(); System.out.println("Size of the fruits set before adding elements: " + sizeBeforeAdd); // Add some elements to the set fruits.add("Apple"); fruits.add("Banana"); fruits.add("Orange"); // Check the size of the set after adding elements int sizeAfterAdd = fruits.size(); System.out.println("Size of the fruits set after adding elements: " + sizeAfterAdd); // Add a duplicate element (Sets do not allow duplicates) fruits.add("Apple"); // Check the size again int sizeAfterDuplicateAdd = fruits.size(); System.out.println("Size of the fruits set after adding a duplicate: " + sizeAfterDuplicateAdd); } }Aqui está o que adicionamos:
int sizeBeforeAdd = fruits.size();: Esta linha chama o métodosize()no conjuntofruitse armazena o valor inteiro retornado (o número de elementos) em uma variável chamadasizeBeforeAdd.int sizeAfterAdd = fruits.size();: Isso verifica o tamanho após adicionar os três elementos iniciais.fruits.add("Apple");: Tentamos adicionar "Apple" novamente. Como "Apple" já está no conjunto, esta operação não alterará o conteúdo do conjunto.int sizeAfterDuplicateAdd = fruits.size();: Isso verifica o tamanho após tentar adicionar uma duplicata.
Salve o arquivo
SetCheck.java.Compile o programa Java modificado no Terminal:
javac SetCheck.javaNovamente, nenhuma saída indica compilação bem-sucedida.
Execute o programa:
java SetCheckVocê deve ver uma saída semelhante a esta:
Size of the fruits set before adding elements: 0 Size of the fruits set after adding elements: 3 Size of the fruits set after adding a duplicate: 3Esta saída mostra que o método
size()relata corretamente o número de elementos e que adicionar um elemento duplicado não aumenta o tamanho do conjunto.
Lidar com Sets Nulos
Nas etapas anteriores, trabalhamos com um Set que foi devidamente inicializado. No entanto, na programação do mundo real, você pode encontrar situações em que uma variável Set é null. Tentar chamar métodos como isEmpty() ou size() em um objeto null resultará em um NullPointerException, que é um erro comum em Java. É importante lidar com esses casos de forma adequada.
Abra o arquivo
SetCheck.javano seu diretório~/projectno editor WebIDE.Modifique o método
mainpara demonstrar como lidar com um setnull. Substitua o métodomainexistente pelo seguinte código:import java.util.HashSet; import java.util.Set; public class SetCheck { public static void main(String[] args) { // Declare a Set variable but initialize it to null Set<String> colors = null; // Attempting to call isEmpty() or size() here would cause a NullPointerException // System.out.println("Is the colors set empty? " + colors.isEmpty()); // This would crash! // To safely check if a set is null or empty, we first check for null if (colors == null) { System.out.println("The colors set is null."); } else { // If it's not null, we can safely check if it's empty if (colors.isEmpty()) { System.out.println("The colors set is empty."); } else { System.out.println("The colors set is not empty and has " + colors.size() + " elements."); } } // Now, let's initialize the set and add elements colors = new HashSet<>(); colors.add("Red"); colors.add("Blue"); // Check again after initialization and adding elements if (colors == null) { System.out.println("The colors set is null."); } else { if (colors.isEmpty()) { System.out.println("The colors set is empty."); } else { System.out.println("The colors set is not empty and has " + colors.size() + " elements."); } } } }Neste código atualizado:
Set<String> colors = null;: Declaramos uma variávelSetcolors, mas a definimos explicitamente comonull.- Comentamos a linha que causaria um
NullPointerException. if (colors == null): Esta é a verificação crucial. Antes de chamar qualquer método na variávelcolors, primeiro verificamos se ela énull.- Se
colorsnão fornull, prosseguimos para verificar se está vazio usandocolors.isEmpty()ou obter seu tamanho usandocolors.size(). - Em seguida, inicializamos
colorscom um novoHashSete adicionamos elementos para mostrar a saída diferente quando o conjunto não é nulo e não está vazio.
Salve o arquivo
SetCheck.java.Compile o programa no Terminal:
javac SetCheck.javaExecute o programa:
java SetCheckVocê deve ver uma saída semelhante a esta:
The colors set is null. The colors set is not empty and has 2 elements.Isso demonstra como lidar com segurança com possíveis valores
nullpara uma variávelSetantes de tentar acessar seus métodos. Sempre verifique se énullprimeiro ao lidar com referências de objetos que podem não estar inicializadas.
Resumo
Neste laboratório, aprendemos como verificar se um Set em Java está vazio. Começamos usando o método isEmpty(), que é a maneira padrão e mais eficiente de realizar essa verificação. Criamos um HashSet, verificamos seu status vazio antes e depois de adicionar elementos e observamos a saída booleana de isEmpty(). Isso demonstrou o uso básico de isEmpty() para determinar se um conjunto contém algum elemento.



