John Selawsky
Senior Java Developer and Tutor bei LearningTree

HashSet contains()-Methode in Java

Veröffentlicht in der Gruppe Germany

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: HashSet contains()-Methode in Java - 1

Abb. 1: Eine Abbildung mit gültigen und ungültigen Beispielen für ein HashSet

(Bevor du weitermachst: Wir gehen davon aus, dass du die Begriffe Hashing und Hashtabellen kennst) HashSet erweitert (engl. „extends“; extends bedeutet, dass eine Klasse von einer anderen Klasse erbt) AbstractSet und implementiert das Set-Interface. Hier ein paar Punkte, die du beachten musst, bevor du mit HashSets arbeitest:
  • 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. HashSet contains()-Methode in Java - 2

Fazit

Die Methode contains() für HashSets ist ziemlich einfach zu benutzen. Bei Unklarheiten kannst du aber immer zu diesem Artikel zurückkehren. Viel Spaß beim Programmieren! :)
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION