Was ist ein HashSet?
HashSet ist ein eingebauter Datentyp in Java, und vereinfacht ausgedrückt könnte man sagen „Ein HashSet ist eine ungeordnete Sammlung einmaliger Elemente.“ Sieh dir ein einfaches Beispiel an:
Abb. 1: Eine Abbildung mit gültigen und ungültigen Beispielen für ein HashSet
- Es erstellt eine Collection (Collection bedeutet eine einzelne Einheit von Objekten, z. B.: ArrayList, LinkedList, Vector usw.), die eine Hashtabelle zur Speicherung verwendet.
- Doppelte Werte sind in einem HashSet nicht erlaubt.
- Du kannst „null“-Werte in ein HashSet einfügen.
- Es wird keine bestimmte Einfügereihenfolge berücksichtigt. Wenn du also Elemente der Reihe nach einfügen willst, ist ein HashSet für deine Anforderungen eine schlechte Wahl.
- Wenn du ein Element in konstanter Zeit (O(1)) abrufen willst, ist ein HashSet einer der besten Ansätze, die du wählen kannst.
Was ist die Methode HashSet.contains()?
HashSet.contains() ist eine boolesche Methode, die prüft, ob ein Element in einer Instanz von HashSet vorhanden ist oder nicht. Einfach gesagt, ob die Menge das gewünschte Element enthält. Java.util.HashSet bietet eine effiziente Implementierung dafür. Wir zeigen dir, wie du sie effektiv nutzen kannst, um deine Fragen zu klären.contains() mit Integer-Werten
import java.util.HashSet;
public class HashSetDemo {
public static void main(String[] args) {
// Deklariere dein HashSet
HashSet digits = new HashSet();
digits.add(0);
digits.add(1);
digits.add(2);
digits.add(3);
digits.add(4);
digits.add(5);
digits.add(null);
System.out.println("Alle Elemente in HashSet:\t" + digits);
// Versuche, Duplikate hinzuzufügen
digits.add(5);
digits.add(2);
System.out.println("Nach Hinzufügen von Duplikaten: \t" + digits);
System.out.println(„\n-------contains-Methode verwenden-------");
// Überprüfe, ob die folgenden Ziffern im HashSet vorhanden sind
System.out.println("digits.contains(0) : " + digits.contains(0));
System.out.println("digits.contains(2) : " + digits.contains(2));
System.out.println("digits.contains(3) : " + digits.contains(7));
System.out.println("digits.contains(null) : " + digits.contains(null));
}
}
Ausgabe
Alle Elemente im HashSet: [0, null, 1, 2, 3, 4, 5]
Nach Hinzufügen von Duplikaten: [0, null, 1, 2, 3, 4, 5]
-------contains-Methode verwenden-------
digits.contains(0) : true
digits.contains(2) : true
digits.contains(3) : false
digits.contains(null) : true
contains() mit Strings
Sieh dir ein weiteres Beispiel für die Methode contains() mit Strings an.
import java.util.HashSet;
public class HashSetDemo {
public static void main(String[] args) {
// Versuche mit einem anderen HashSet vom Typ String zu arbeiten
HashSet rainbow = new HashSet();
// Hinzufügen von Elementen zum HashSet mit add()
rainbow.add("Rot");
rainbow.add("Orange");
rainbow.add("Gelb");
rainbow.add("Grün");
rainbow.add("Blau");
rainbow.add("Indigo");
rainbow.add("Violett");
// Lass uns das HashSet durchlaufen
System.out.println("Regenbogen durchlaufen:");
for (String i : rainbow){
System.out.println(i);
}
// Überprüfe, ob der Regenbogen diese Farbe enthält oder nicht
System.out.println(„\n-------contains-Methode verwenden-------");
System.out.println("rainbow.contains(\"Gelb\"): \t" + rainbow.contains("Gelb"));
System.out.println("rainbow.contains(\"Weiß\"): \t" + rainbow.contains("Weiß"));
System.out.println("rainbow.contains(\"Lavendel\"): \t" + rainbow.contains("Lavendel"));
System.out.println("rainbow.contains(\"Rot\"): \t" + rainbow.contains("Rot"));
// Entferne eine Farbe aus dem Regenbogen mit remove()
rainbow.remove("Rot");
// Jetzt verwende die Methode contains() erneut, um zu prüfen, ob sie noch vorhanden ist
System.out.println("rainbow.contains(\"Rot\"): \t" + rainbow.contains("Rot"));
System.out.println("\nNach dem Entfernen von Rot: " + rainbow);
}
}
Ausgabe
Regenbogen durchlaufen:
Rot
Violett
Gelb
Blau
Indigo
Orange
Grün
-------contains-Methode verwenden-------
rainbow.contains("Gelb"): true
rainbow.contains("Weiß"): false
rainbow.contains("Lavendel"): false
rainbow.contains("Rot"): true
rainbow.contains("Rot"): false
Nach dem Entfernen von Rot: [Violett, Gelb, Blau, Indigo, Orange, Grün]
Wie du siehst, unterscheidet sich die Reihenfolge der Ausgabe von der Reihenfolge, in der die Elemente in das HashSet eingetragen werden.

GO TO FULL VERSION