HashSet i Java är en av de viktigaste aspekterna av . Det används vanligtvis för att lagra unika värden på ett oordnat sätt. Genom denna artikel om HashSet i Java kommer jag att ge dig en fullständig genomgång av vad som exakt är en HashSet och hur du kan använda den i din applikation.
Nedan följer ämnena i denna artikel:
- HashSet i Java
- Java HashSet vs HashMap
- HashSet-hierarki
- Konstruktörer av java.util.HashSet Class
- Metoder för java.util.HashSet-klass
- Implementering av HashSet i Java-programmet
Låt oss komma igång genom att först förstå vad som är HashSet i Java.
HashSet i Java
java.util.HashSet klass är medlem i Java-samlingsramen somärver klassen AbstractSet ochimplementerarUppsättning gränssnitt . Det implementerar implicit en hashtable för att skapa och lagra en samling unika element. Hashtable är inget annat än en förekomst av HashMap-klassen som använder en hashmekanism för att lagra informationen i en HashSet.
Hashing är processen att konvertera informationsinnehållet till ett unikt värde som mer populärt kallas hash-kod. Denna hashkod används sedan för att indexera data som är associerade med nyckeln. Hela processen för att omvandla informationsnyckeln till hashkoden utförs internt.
hur man skriver en strängmetod
Nu för en bättre förståelse av HashSet i Java, låt mig lista några av dess funktioner:
- En HashSet i Java tillåter inte dubbla värden.
- Det kan innehålla nollvärden.
- HashSet följer inte insättningsordningen för lagring av data utan den använder hashkoden för att indexera värdena inom.
- Det är inte synkroniserad vilket automatiskt gör det tråd-osäkert.
- HashSet-klassen implementerar också Cloneable ochSerialiserbara gränssnitt.
Nu när du är medveten om exakt vad som är HashSet i Java, låt oss gå vidare med den här artikeln och avmystifiera skillnaderna mellan HashMap och HashSet i Java.
Java HashSet vs HashMap
HashSet | HashMap |
Redskapjava.util.Ställ in gränssnitt | Redskapjava.util.Map |
Lagrar data som objekt | Lagrar data i form av nyckel-värdepar |
HashSet kräver bara en parameter för att initialisera objektet | Det kräver två parametrar (nyckel, värde) för dess initialisering av objektet |
Tillåter inte dubbla element | Tillåter inte dubbla nycklar men du kan lagra duplicerade värden |
Tillåter ett enda nullvärde | Tillåter en enda nollnyckel och valfritt antal nollvärden |
HashSet använd add ()metod för att lägga till eller lagra data | HashMap använder put () -metoden för lagring av data |
Nu när du har en tydlig distinktion mellan HashMap och HashSet, låt oss nu fokusera på HashSet igen och dyka djupare in i den. I nästa avsnitt i den här artikeln kommer jag att introducera dig till den fullständiga hierarkin för HashSet i Java.
HashSet-hierarki i Java
Som du kan se från nedanstående diagram,HashSet-klassen implementerar Set-gränssnittet. Set-gränssnittet ärver vidare Collection-gränssnittet som så småningom utökar det Iterabla gränssnittet i en hierarkisk ordning.
retracement sekvens java för loop
Nu, gå vidare med den här HashSet i Java-artikeln, låt oss kolla in de olika konstruktörer stöds av denna klass.
Konstruktörer av java.util.HashSet Class
Byggare | Beskrivning |
HashSet () | Detta är standardkonstruktören för HashSet-klassen |
HashSet (int-kapacitet) | Denna konstruktör används för att initialisera hashuppsättningens initiala kapacitet. Kapaciteten kan växa dynamiskt med nya element |
HashSet (int-kapacitet, float loadCapacity) | Denna konstruktör används för att initialisera den ursprungliga kapaciteten för hash-uppsättningen tillsammans med lastkapaciteten |
HashSet (samling c) | Denna konstruktör används för att initialiserahashuppsättningen med hjälp av elementen från samling c |
Dessa var de fyra konstruktörerna av HashSet-klassen i . Låt oss nu ta reda på vad som är olika definieras i Java HashSet.
Metoder för java.util.HashSet-klass
Metod | Beskrivning |
boolean add (Object obj) | Den här metoden hjälper till att lägga till ett visst element i HashSet endast om det inte finns |
ogiltig rensa () | Denna metod hjälper till att ta bort alla element från HashSet |
Objektklon () | Den här metoden returnerar en grunt kopia av HashSet-förekomsten snarare än kloner av HashSet-elementen |
boolean innehåller (Objekt o) | Den här metoden returnerar true om det skickade elementet finns i HashSet |
boolean isEmpty () | Den här metoden returnerar true om HashSet är tomt |
Iterator iterator () | Denna metod returnerar en iterator över elementen som finns i HashSet |
boolean ta bort (Objekt o) | Denna metod hjälper till att ta bort det angivna elementet från HashSet om det finns |
int storlek () | Den här metoden returnerar det totala antalet element som finns i HashSet |
Tillsammans med ovan nämnda metoder innehåller HashSet-klassen i Java också från dess superklasser.
Låt oss nu försöka implementera dessa metoder och få våra fötter våta med kodning.
hur man sorterar array c ++
Implementering av HashSet i Java-programmet
I exemplet nedan kommer vi att försöka implementera ett antal metoder som tillhandahålls av HashSet-klassen.
importera java.util.HashSet importera java.util. * public class SampleHashSet {public static void main (String [] args) {// Skapa en HashSet-uppsättning eduCourses = new HashSet () // Lägga till nya element i HashSet eduCourses.add ('Big Data') eduCourses.add ('Node.js') eduCourses.add ('Java') eduCourses.add ('Python') eduCourses.add ('Blockchain') eduCourses.add ('JavaScript') eduCourses. lägg till ('Selen') eduCourses.add ('AWS') eduCourses.add ('Machine Learning') eduCourses.add ('RPA') // Att lägga till dubbla element ignoreras eduCourses.add ('Java') eduCourses.add ('RPA') System.out.println (eduCourses) // Kontrollera om HashSet innehåller ett specifikt element String myCourse = 'Node.js' if (eduCourses.contains (myCourse)) {System.out.println (myCourse + ' finns i kurslistan. ')} annat {System.out.println (myCourse +' finns inte i kurslistan. ')} // Sortering av eduCourses med listlista = ny ArrayList (eduCourses) Collections.sort (list) // Skriva ut de sorterade elementen i HashSet System.out.println (' Skriva ut kurserna i sorterad ordning med List: '+ lista) // Ta bort objekt från HashSet med remove () eduCourses.remove (' Python ') // Iterera över HashSet-objekt System.out.println (' Iterera över kurslista efter borttagning Python: ') Iterator i = eduCourses.iterator () medan (i.hasNext ()) System.out.println (i.next ()) // Skapa ett annat objekt av HashSet HashSet eduNewCourses = new HashSet () eduNewCourses.add ( 'Node.js') eduNewCourses.add ('Python') eduNewCourses.add ('Machine Learning') // Ta bort alla nya element från HashSet eduCourses.removeAll (eduNewCourses) System.out.println ('Efter anropa removeAll () metodkurser kvar: '+ eduCourses) // Ta bort element på grundval av specificerat villkor eduCourses.removeIf (str-> str.contains (' Java ')) System.out.println (' Efter att ha anropat removeIf () -metod: '+ eduCourses) // Ta bort element från eduCourses som anges i eduNewCourses eduCourses.retainAll (eduNewCourses) System.out.println ('HashSet efter' + 'retainAll () operation: '+ eduNewCourses) // Ta bort alla tillgängliga element i uppsättningen eduCourses.clear () System.out.println (' Efter att ha anropat clear () -metoden: '+ eduCourses)}}
När du kör koden ovan kommer den att visa utgången nedan.
Med detta kommer vi till slutet av den här artikeln. Hoppas att jag kunde hålla koncepten skarpa och tydliga. Du kan lära dig mer om genom att gå igenom vår .
Nu när du har förstått vad som är en HashSet i Java, kolla in av Edureka, ett pålitligt online-lärande företag med ett nätverk av mer än 250 000 nöjda elever spridda över hela världen. Edurekas Java J2EE- och SOA-utbildning och certifieringskurs är utformad för studenter och yrkesverksamma som vill bli Java-utvecklare. Kursen är utformad för att ge dig ett försprång till Java-programmering och träna dig för både kärn- och avancerade Java-koncept tillsammans med olika Java-ramverk som Hibernate & Spring.
Har du en fråga till oss? Vänligen nämna det i kommentarsektionen i den här artikeln 'HashSet i Java' så återkommer vi till dig så snart som möjligt.