Einführung
In diesem Lab lernen Sie, wie Sie prüfen können, ob ein Set in Java leer ist. Wir werden die Standardmethode isEmpty() untersuchen, eine einfache und effiziente Möglichkeit, festzustellen, ob ein Set Elemente enthält.
Sie werden auch lernen, wie Sie die Größe eines Sets mithilfe der Methode size() überprüfen und verstehen, wie Sie potenzielle NullPointerException behandeln können, wenn Sie mit Null-Sets umgehen. Am Ende dieses Labs können Sie die Leerheit von Java-Sets in verschiedenen Szenarien sicher prüfen.
Verwenden Sie isEmpty() für die Set-Prüfung
In diesem Schritt lernen wir, wie man prüft, ob ein Set in Java leer ist, indem man die Methode isEmpty() verwendet. Ein Set ist eine Sammlung, die keine doppelten Elemente enthalten kann. Die Methode isEmpty() ist eine einfache und effiziente Möglichkeit, festzustellen, ob eine Sammlung Elemente enthält.
Zunächst erstellen wir eine neue Java-Datei namens
SetCheck.javaim Verzeichnis~/project. Sie können dies tun, indem Sie mit der rechten Maustaste im Dateiexplorer links klicken und "Neue Datei" auswählen, und dannSetCheck.javaeingeben.Öffnen Sie die Datei
SetCheck.javaim Editor und fügen Sie den folgenden Code hinzu: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); } }Lassen Sie uns die neuen Teile dieses Codes analysieren:
import java.util.HashSet;undimport java.util.Set;: Diese Zeilen importieren die notwendigen Klassen, um mitSetundHashSetzu arbeiten.Set<String> fruits = new HashSet<>();: Diese Zeile erstellt ein neuesHashSet-Objekt namensfruits. Wir geben<String>an, um anzuzeigen, dass dieses SetString-Objekte speichern wird.boolean isEmptyBeforeAdd = fruits.isEmpty();: Diese Zeile ruft die MethodeisEmpty()auf demfruits-Set auf und speichert das Ergebnis (entwedertrueoderfalse) in einer booleschen Variablen namensisEmptyBeforeAdd.fruits.add("Apple");: Diese Zeile fügt die Zeichenkette "Apple" demfruits-Set hinzu.boolean isEmptyAfterAdd = fruits.isEmpty();: Diese Zeile prüft erneut, ob das Set leer ist, nachdem Elemente hinzugefügt wurden.
Speichern Sie die Datei
SetCheck.java(Strg+S oder Cmd+S).Jetzt kompilieren wir das Java-Programm. Öffnen Sie das Terminal unten im WebIDE und stellen Sie sicher, dass Sie sich im Verzeichnis
~/projectbefinden. Führen Sie dann den folgenden Befehl aus:javac SetCheck.javaWenn die Kompilierung erfolgreich ist, sehen Sie keine Ausgabe.
Führen Sie schließlich das kompilierte Programm mit dem
java-Befehl aus:java SetCheckSie sollten eine Ausgabe ähnlich der folgenden sehen:
Is the fruits set empty before adding elements? true Is the fruits set empty after adding elements? falseDiese Ausgabe bestätigt, dass die Methode
isEmpty()den Zustand des Sets vor und nach dem Hinzufügen von Elementen korrekt gemeldet hat.
Überprüfen Sie die Größe eines Sets mit size()
Im vorherigen Schritt haben wir gelernt, wie man prüft, ob ein Set leer ist, indem man die Methode isEmpty() verwendet. Eine weitere häufige Operation besteht darin, herauszufinden, wie viele Elemente sich in einem Set befinden. Hierfür verwenden wir die Methode size(). Die Methode size() gibt die Anzahl der Elemente zurück, die sich derzeit im Set befinden.
Öffnen Sie die Datei
SetCheck.javaim Verzeichnis~/projectim WebIDE-Editor.Modifizieren Sie die
main-Methode, um Aufrufe der Methodesize()einzubeziehen. Ersetzen Sie die vorhandenemain-Methode durch den folgenden Code: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); } }Hier ist, was wir hinzugefügt haben:
int sizeBeforeAdd = fruits.size();: Diese Zeile ruft die Methodesize()auf demfruits-Set auf und speichert den zurückgegebenen ganzzahligen Wert (die Anzahl der Elemente) in einer Variablen namenssizeBeforeAdd.int sizeAfterAdd = fruits.size();: Diese Zeile prüft die Größe nach dem Hinzufügen der ersten drei Elemente.fruits.add("Apple");: Wir versuchen, "Apple" erneut hinzuzufügen. Da "Apple" bereits im Set enthalten ist, wird diese Operation den Inhalt des Sets nicht ändern.int sizeAfterDuplicateAdd = fruits.size();: Diese Zeile prüft die Größe nach dem Versuch, ein Duplikat hinzuzufügen.
Speichern Sie die Datei
SetCheck.java.Kompilieren Sie das modifizierte Java-Programm im Terminal:
javac SetCheck.javaWiederum zeigt die fehlende Ausgabe an, dass die Kompilierung erfolgreich war.
Führen Sie das Programm aus:
java SetCheckSie sollten eine Ausgabe ähnlich der folgenden sehen:
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: 3Diese Ausgabe zeigt, dass die Methode
size()die Anzahl der Elemente korrekt meldet und dass das Hinzufügen eines Duplikat-Elements die Größe des Sets nicht erhöht.
Behandeln von Null-Sets
In den vorherigen Schritten haben wir mit einem korrekt initialisierten Set gearbeitet. In der Praxis der Programmierung können Sie jedoch Situationen antreffen, in denen eine Set-Variable null ist. Wenn Sie versuchen, Methoden wie isEmpty() oder size() auf ein null-Objekt aufzurufen, führt dies zu einer NullPointerException, einem häufigen Fehler in Java. Es ist wichtig, diese Fälle angemessen zu behandeln.
Öffnen Sie die Datei
SetCheck.javaim Verzeichnis~/projectim WebIDE-Editor.Modifizieren Sie die
main-Methode, um zu zeigen, wie man mit einemnull-Set umgeht. Ersetzen Sie die vorhandenemain-Methode durch den folgenden Code: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."); } } } }In diesem aktualisierten Code:
Set<String> colors = null;: Wir deklarieren eineSet-Variablecolorsund setzen sie explizit aufnull.- Wir haben die Zeile auskommentiert, die eine
NullPointerExceptionverursachen würde. if (colors == null): Dies ist die entscheidende Prüfung. Bevor wir irgendeine Methode auf diecolors-Variable aufrufen, prüfen wir zunächst, ob sienullist.- Wenn
colorsnichtnullist, prüfen wir dann, ob es leer ist, indem wircolors.isEmpty()verwenden, oder wir ermitteln seine Größe mitcolors.size(). - Wir initialisieren dann
colorsmit einem neuenHashSetund fügen Elemente hinzu, um die unterschiedliche Ausgabe zu zeigen, wenn das Set nichtnullund nicht leer ist.
Speichern Sie die Datei
SetCheck.java.Kompilieren Sie das Programm im Terminal:
javac SetCheck.javaFühren Sie das Programm aus:
java SetCheckSie sollten eine Ausgabe ähnlich der folgenden sehen:
The colors set is null. The colors set is not empty and has 2 elements.Dies zeigt, wie man potenzielle
null-Werte für eineSet-Variable sicher behandelt, bevor man versucht, auf ihre Methoden zuzugreifen. Prüfen Sie immer zuerst aufnull, wenn Sie mit Objektreferenzen arbeiten, die möglicherweise nicht initialisiert sind.
Zusammenfassung
In diesem Lab haben wir gelernt, wie man prüft, ob ein Set in Java leer ist. Wir haben begonnen, die Methode isEmpty() zu verwenden, die der Standard- und effizienteste Weg ist, um diese Prüfung durchzuführen. Wir haben ein HashSet erstellt, seinen Leerstatus vor und nach dem Hinzufügen von Elementen geprüft und die boolesche Ausgabe von isEmpty() beobachtet. Dies hat die grundlegende Verwendung von isEmpty() zur Bestimmung, ob ein Set Elemente enthält, demonstriert.



