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;
import java.util.HashSet;
public class HashSetDemo {
public static void main(String[] args) {
// Declare your hash set
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("All elements in hashset:\t" + digits);
// Try adding duplicates
digits.add(5);
digits.add(2);
System.out.println("After adding duplicates: \t" + digits);
System.out.println("\n-------Using Contains Method-------");
// Check out if the following digits exist in the hashset
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) {
// Try working with another hash set of String type
HashSet rainbow = new HashSet();
// Adding elements into HashSet using add()
rainbow.add("Red");
rainbow.add("Orange");
rainbow.add("Yellow");
rainbow.add("Green");
rainbow.add("Blue");
rainbow.add("Indigo");
rainbow.add("Violet");
// Let's traverse the hashset
System.out.println("Traversing the rainbow:");
for (String i : rainbow){
System.out.println(i);
}
// Check out if rainbow contains this color or not
System.out.println("\n-------Using Contains Method-------");
System.out.println("rainbow.contains(\"Yellow\"): \t" + rainbow.contains("Yellow"));
System.out.println("rainbow.contains(\"White\"): \t" + rainbow.contains("White"));
System.out.println("rainbow.contains(\"Lavender\"): \t" + rainbow.contains("Lavender"));
System.out.println("rainbow.contains(\"Red\"): \t" + rainbow.contains("Red"));
// Remove a color from rainbow using remove()
rainbow.remove("Red");
// Now consume set contains() method again to check if it's still present
System.out.println("rainbow.contains(\"Red\"): \t" + rainbow.contains("Red"));
System.out.println("\nAfter removing Red: " + 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