Hvad er et HashSet?
HashSet er en indbygget datatype i Java, og i lægmandstermer kan du sige "HashSet er en uordnet samling af unikke elementer." Tag et kig på et grundlæggende eksempel:
- Det opretter en samling ( samling betyder en enkelt enhed af objekter, f.eks.: ArrayList, LinkedList, Vector osv.), der bruger en hash-tabel til opbevaring.
- Duplikerede værdier er ikke tilladt i et HashSet.
- Du kan indsætte "null" værdier i et HashSet.
- Ingen indsættelsesrækkefølge opretholdes. Så hvis du ønsker at indsætte varer i rækkefølge, vil et HashSet være et dårligt valg til dine krav.
- Hvis du ønsker at hente/hente et element i konstant tid (O(1)), så er et HashSet en af de bedste tilgange, du kan tage.
Hvad er metoden HashSet.contains()?
HashSet.contains() er en boolsk metode til at kontrollere, om et element er til stede i en forekomst af HashSet eller ej. Kort sagt, om sættet indeholder det ønskede element. Java.util.HashSet giver en effektiv implementering til det. Lad os vise dig, hvordan du effektivt kan bruge det til at løse dine spørgsmål.indeholder() med heltal
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));
}
}
Produktion
Alle elementer i hashset: [0, null, 1, 2, 3, 4, 5] Efter tilføjelse af dubletter: [0, null, 1, 2, 3, 4, 5] -------Brug Contains Method- ------ digits.contains(0) : true digits.contains(2) : true digits.contains(3) : false digits.contains(null) : sand
indeholder() med Strings
Se et andet eksempel på contains() -metoden med Strings .
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);
}
}
Produktion
At krydse regnbuen: Rød Violet Gul Blå Indigo Orange Grøn -------Brug Contains Method------- rainbow.contains("Gul"): true rainbow.contains("White"): falsk regnbue. contains("Lavender"): false rainbow.contains("Red"): true rainbow.contains("Red"): false Efter fjernelse af Rød: [Violet, Gul, Blå, Indigo, Orange, Grøn]
Som du kan se, er rækkefølgen af output forskellig fra rækkefølgen af at sætte elementerne ind i Hashset.
GO TO FULL VERSION