Wat is een hashset?
HashSet is een ingebouwd datatype in Java, en in lekentermen kun je zeggen: "HashSet is een ongeordende verzameling unieke elementen." Bekijk een eenvoudig voorbeeld:
- Het maakt een verzameling aan ( verzameling betekent een enkele eenheid van objecten, bijvoorbeeld: ArrayList, LinkedList, Vector enz.) die een hashtabel gebruikt voor opslag.
- Dubbele waarden zijn niet toegestaan in een HashSet.
- U kunt "null" -waarden invoegen in een HashSet.
- Er wordt geen invoegopdracht bijgehouden. Dus als u items op volgorde wilt invoegen, is een HashSet een slechte keuze voor uw vereisten.
- Als u een element in constante tijd (O(1)) wilt ophalen/ophalen, dan is een HashSet een van de beste benaderingen die u kunt nemen.
Wat is de methode HashSet.contains()?
HashSet.contains() is een Booleaanse methode om te controleren of een item aanwezig is in een instantie van HashSet of niet. Simpel gezegd, of de set het gewenste element bevat. Java.util.HashSet biedt hiervoor een efficiënte implementatie. Laten we u laten zien hoe u het effectief kunt gebruiken om uw vragen op te lossen.bevat() met gehele getallen
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));
}
}
Uitgang
Alle elementen in hashset: [0, null, 1, 2, 3, 4, 5] Na toevoeging van duplicaten: [0, null, 1, 2, 3, 4, 5] -------Met behulp van de methode Bevat- ------ digits.contains(0) : true digits.contains(2) : true digits.contains(3) : false digits.contains(null) : true
bevat() met tekenreeksen
Bekijk nog een voorbeeld van de methode contain() met 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);
}
}
Uitgang
De regenboog doorkruisen: Rood Violet Geel Blauw Indigo Oranje Groen -------Gebruik de methode Bevat ------- rainbow.contains("Yellow"): true rainbow.contains("White"): false rainbow. bevat("Lavendel"): false rainbow.contains("Rood"): true regenboog.contains("Rood"): false Na het verwijderen van Rood: [Violet, Geel, Blauw, Indigo, Oranje, Groen]
Zoals u kunt zien, is de volgorde van uitvoer anders dan de volgorde waarin de elementen in de hashset worden geplaatst.
GO TO FULL VERSION