treeset java tutorial with programming examples
Deze tutorial legt alles uit over TreeSet Class, Implementation, Iteration, TreeSet Vs HashSet, Java TreeSet-voorbeelden, enz.:
TreeSet in Java implementeert de Set-interface (meer specifiek SortedSet). De TreeSet gebruikt intern een TreeMap voor het opslaan van gegevens. Standaard worden de objecten of elementen van de TreeSet opgeslagen volgens de natuurlijke volgorde in oplopende volgorde.
De TreeSet-klasse die TreeSet implementeert in Java, implementeert de ‘NavigableSet’ -interface en neemt ook de klasse AbstractSet over.
Kijk hier om AZ van Java-trainingshandleidingen hier te zien.
Wat je leert:
TreeSet in Java
Merk op dat de TreeSet-elementen ook expliciet kunnen worden geordend door de aangepaste Comparator op te geven op het moment dat een TreeSet-object wordt gemaakt met behulp van het specifieke constructor-prototype.
Hieronder staan enkele van de belangrijkste kenmerken van TreeSet:
- TreeSet-klasse implementeert de SortedSet-interface. Het staat geen dubbele elementen toe.
- TreeSet-klasse is niet gesynchroniseerd.
- TreeSet behoudt de invoegvolgorde niet, maar de elementen in TreeSet worden gesorteerd volgens de natuurlijke volgorde.
- TreeSet kan worden besteld met behulp van een aangepaste comparator tijdens het maken van een TreeSet-object.
- TreeSet wordt normaal gesproken gebruikt voor het opslaan van grote hoeveelheden informatie die van nature wordt gesorteerd. Dit helpt bij een gemakkelijke en snellere toegang.
TreeSet Class Declaration
Java biedt een klasse genaamd 'TreeSet' die de functionaliteit van TreeSet datastructuur bevat. De klasse TreeSet is een onderdeel van het pakket java.util.
Om de TreeSet-klasse in het Java-programma op te nemen, moeten we de importinstructie gebruiken zoals hieronder weergegeven:
of
Een algemene verklaring van de TreeSet-klasse is:
Zoals blijkt uit de klassendeclaratie, breidt de TreeSet-klasse AbstractSet uit en implementeert het de interfaces NavigableSet, Cloneable en Serializable.
Een klassehiërarchie voor de TreeSet-klasse wordt hieronder gegeven:
Interne implementatie
We weten dat TreeSet de NavigableSet-interface implementeert en de SortedSet-klasse uitbreidt.
Intern wordt de TreeSet-constructor als volgt gedefinieerd:
Zoals te zien is in de bovenstaande constructordefinitie van TreeSet, wordt een TreeMap-object aangeroepen. Intern is het dus een TreeMap-object dat is geïmplementeerd voor een TreeSet. Daarom wordt bij het toevoegen van een element aan TreeSet een sleutel toegevoegd aan TreeMap waarin de sleutels standaard worden gesorteerd.
Vanaf Oracle-documentatie op TreeSet
'Een TreeSet is een NavigableSet-implementatie op basis van een TreeMap.'
Java TreeSet-voorbeeld
Het volgende Java-programma toont een eenvoudig voorbeeld dat TreeSet demonstreert. In dit programma hebben we een eenvoudige Color TreeSet gedefinieerd. We voegen er elementen aan toe en geven het vervolgens weer. Merk op dat de elementen worden weergegeven volgens de natuurlijke volgorde.
Uitgang:
TreeSet Inhoud:
Blauw Groen Rood Geel
Herhaal door TreeSet
Om toegang te krijgen tot de individuele elementen van TreeSet, moeten we door de TreeSet herhalen of met andere woorden, door de TreeSet bladeren.
We doen dit door een Iterator voor de TreeSet te declareren en deze Iterator vervolgens te gebruiken om toegang te krijgen tot elk element. Hiervoor gebruiken we de next () methode van een iterator die het volgende element in de TreeSet retourneert.
Het volgende Java-programma demonstreert het gebruik van de Iterator om door TreeSet te itereren.
Uitgang:
TreeSet: (5, 10, 15, 20, 25)
TreeSet met Iterator: 5, 10, 15, 20, 25,
waar je anime gratis online kunt bekijken
TreeSet Comparator in Java
Standaard is de TreeSet natuurlijk geordend. We kunnen TreeSet ook in een aangepaste volgorde sorteren door een nieuwe vergelijkingsklasse te definiëren. In deze vergelijkingsklasse moeten we de ‘vergelijk’ -methode overschrijven om de elementen van de TreeSet te sorteren. Dit vergelijkingsobject wordt vervolgens doorgegeven aan de TreeSet-constructor.
Het volgende Java-programma toont het gebruik van een comparator om de TreeSet te sorteren.
Uitgang:
TreeSet: (Pune, Indore, Hyderabad, Bangaluru)
Het bovenstaande programma implementeert een Comparator-klasse om de gegeven TreeSet alfabetisch in omgekeerde volgorde te sorteren.
Aanbevolen literatuur = >> Java-vergelijkingsinterface
TreeSet API / Methods & Constructors
In deze sectie bespreken we de API van de TreeSet-klasse. Hier zullen we de constructors en methoden bespreken die door de TreeSet-klasse worden geboden.
TreeSet-klasse biedt overbelaste constructors om een TreeSet-object te construeren.
We hebben deze constructors als volgt in tabelvorm weergegeven:
Constructeurs
Constructor-prototype | Omschrijving | |
---|---|---|
bevat | boolean bevat (Object o) | Controleert of TreeSet een bepaald element bevat; waar indien aanwezig. |
TreeSet () | Standaardconstructor om een nieuw, leeg TreeSet-object te maken. | |
TreeSet (Collectie c) | Maakt een nieuw TreeSet-object met de elementen uit de gegeven verzameling c, gesorteerd volgens natuurlijke volgorde. | |
TreeSet (Comparator-vergelijker) | Construeert een nieuw TreeSet-object dat leeg is en zal worden gesorteerd volgens de gespecificeerde comparator. | |
TreeSet (SortedSet s) | Maakt een nieuw TreeSet-object aan dat elementen bevat van bepaalde gesorteerde sets. |
Methoden
Laten we vervolgens de verschillende methoden van de TreeSet-klasse in tabelvorm weergeven.
Methode | Methode Prototype | Omschrijving |
---|---|---|
toevoegen | boolean add (E e) | Voegt een gegeven element toe aan de TreeSet als het er nog niet is. |
Voeg alles toe | boolean addAll (verzameling c) | Voegt alle elementen in de gegeven verzameling c toe aan de set. |
plafond | E plafond (E e) | Retourneert een element groter dan of gelijk aan e (kleinste element); of null als er geen element aanwezig is. |
Doorzichtig | leegte duidelijk () | Verwijdert alle elementen uit de TreeSet. |
kloon | Object kloon () | Retourneert een ondiepe kopie van het TreeSet-object. |
comparator | Comparator-comparator () | Retourneert de comparator voor de TreeSet of null als natuurlijke volgorde wordt gebruikt. |
aflopendIterator | Iterator aflopend | Geeft een aflopende iterator terug over de elementen in de TreeSet. |
aflopend | NavigableSet aflopendSet () | Retourneert een weergave van elementen in de TreeSet in omgekeerde volgorde. |
eerste | E eerste () | Retourneert het eerste of laagste element in de TreeSet. |
verdieping | E verdieping (E e) | Geeft het element terug dat kleiner is dan of gelijk is aan het gegeven element e in de TreeSet. Retourneert null als een dergelijk element niet bestaat. |
headSet | SortedSet headSet (E toElement) | geeft een set elementen terug die strikt kleiner zijn dan het gegeven aan Element |
NavigableSet headSet (E toElement, inclusief boolean) | Retourneert een set elementen die gelijk zijn aan (indien inclusief = waar) of kleiner zijn dan gegeven aan Element. | |
hoger | E hoger (E e) | Retourneert het kleinste element in deze set dat strikt groter is dan het opgegeven element, of null als er geen dergelijk element is. |
is leeg | boolean isEmpty () | Controleert of de TreeSet leeg is. Geeft true terug als het leeg is. |
iterator | Iterator iterator () | Retourneert een iterator (in oplopende volgorde) voor de TreeSet. |
laatste | E laatste () | Retourneert het hoogste of laatste element in de TreeSet. |
lager | E lager (E e) | Geeft het element (grootste element) terug dat strikt kleiner is dan het gegeven element e in de TreeSet. |
pollFirst | E pollFirst () | Verwijdert en retourneert het eerste (laagste) element in de set; null als de set leeg is. |
pollLast | E pollLast () | Verwijdert en retourneert het laatste (grootste) element in de set; null indien leeg gezet. |
verwijderen | boolean remove (Object o) | Verwijdert het gegeven element uit de set. |
grootte | int maat () | Geeft de grootte of het aantal elementen terug dat aanwezig is in de TreeSet. |
subgroep | NavigableSet-subset (E fromElement, boolean fromInclusive, E toElement, boolean toInclusive) | Retourneert een weergave van elementen variërend van Element tot en met Element. |
SortedSet subSet (E fromElement, E toElement) | Retourneert weergave-elementen die variëren van fromElement (inclusief) tot aanElement (exclusief). | |
tailSet | SortedSet tailSet (E fromElement) | Retourneert een weergave die elementen bevat die groter zijn dan of gelijk zijn aan het gegeven fromElement. |
NavigableSet tailSet (E fromElement, inclusief boolean) | Retourneert een weergave van de elementen die gelijk zijn aan (indien inclusief waar is) of groter zijn dan fromElement. |
TreeSet in Java 8
Houd er rekening mee dat er voor TreeSet geen grote wijzigingen zijn in de Java 8-versie. Alle methoden en constructors werken in Java 8 en de latere versies.
TreeSet-implementatie in Java
Het volgende Java-programma implementeert de meeste van de TreeSet-methoden die hierboven zijn besproken.
Uitgang:
Inhoud boomset: 10 15 25 30 35
plafond (25): 25
verdieping (25): 25
TreeSet bevat (15): true
Tree Set maat: 5
TreeSet Eerste element: 10
TreeSet Laatste element: 35
Element 30 verwijderd uit TreeSet
TreeSet na verwijderen (): 10 15 25 35
TreeSet-grootte na remove (): 4
Headset: (10, 15, 25)
Tree Set size after clear (): 0
In het bovenstaande programma definiëren we een TreeSet-object en voegen we er vervolgens elementen aan toe met behulp van de ‘add’ -methode. Vervolgens definiëren we een ArrayList. Vervolgens voegen we elementen van ArrayList toe aan TreeSet met behulp van de ‘addAll’ -methode. Later demonstreren we verschillende TreeSet-methoden zoals Iterator, plafond, vloer, eerste, laatste, bevat, maat, isEmpty, etc.
TreeSet versus HashSet
Laten we eens kijken naar enkele verschillen tussen TreeSet en HashSet.
TreeSet | HashSet |
---|---|
Elementen worden gerangschikt volgens natuurlijke volgorde. | Elementen zijn niet geordend. |
Het kost O (log N) tijd voor bewerkingen zoals invoegen, verwijderen en zoeken, waardoor het langzamer is dan TreeSet. | Neemt constant tijd in beslag voor basisbewerkingen zoals invoegen, verwijderen en zoeken, waardoor het sneller is dan TreeSet. |
Null-objecten zijn niet toegestaan. | Staat null-object toe. |
Gebruikt de methode CompareTo () om twee objecten te vergelijken. | Gebruikt de methode Compare () en Equals () om twee objecten te vergelijken. |
Intern geïmplementeerd met Navigable TreeMap. | Intern geïmplementeerd met HashMap. |
Heeft een rijke functionaliteit API die verschillende manipulaties kan uitvoeren. | De functionaliteit-API van HashSet is vrij beperkt. |
Veel Gestelde Vragen
V # 1) Wat is een TreeSet?
Antwoord: TreeSet is een implementatie van SortedSet die dubbele waarden niet toestaat. De elementen in de TreeSet worden standaard in oplopende volgorde gesorteerd.
Q # 2) Hoe voeg je elementen toe aan TreeSet in Java?
Antwoord: TreeSet class biedt een add-methode die wordt gebruikt om een specifiek element aan de TreeSet toe te voegen. Het biedt ook de ‘addAll’ -methode. Deze methode accepteert elke andere verzameling als een argument en voegt vervolgens alle elementen van deze verzameling toe aan de TreeSet.
Q # 3) Is TreeSet thread-safe?
Antwoord: Nee. TreeSet is niet thread-safe. We moeten dus zorgen voor hoe we TreeSet gebruiken in een multi-threaded omgeving.
Q # 4) Kan TreeSet duplicaten hebben?
Antwoord: Nee. TreeSet staat geen duplicaten toe.
Q # 5)Staat TreeSet null toe in Java?
Antwoord: Ja. We kunnen null-elementen hebben in TreeSet.
Gevolgtrekking
Hiermee is onze tutorial over TreeSet voltooid. TreeSet is een SortedSet-implementatie die geen duplicaten toestaat, maar null-waarden. De elementen in de TreeSet worden standaard gesorteerd op natuurlijke volgorde in oplopende volgorde.
We hebben de basisprincipes van de TreeSet-klasse gezien, samen met zijn declaratie en verschillende constructors en methoden.
In onze volgende tutorials bespreken we de resterende Java-verzamelingsklassen.
Bekijk hier de eenvoudige Java-trainingsserie.
Aanbevolen literatuur
- Binaire zoekboom in Java - Implementatie en codevoorbeelden
- TreeMap in Java - Tutorial met Java TreeMap-voorbeelden
- Wat is Java-vector | Java Vector Class-zelfstudie met voorbeelden
- Zelfstudie voor Java-scannerklassen met voorbeelden
- Zelfstudie voor Java-array-klassen - java.util.Arrays-klasse met voorbeelden
- JAVA-zelfstudie voor beginners: 100+ praktische Java-videotutorials
- Java String bevat () Method Tutorial met voorbeelden
- Jagged Array in Java - Tutorial met voorbeelden