treemap java tutorial with java treemap examples
Deze Java TreeMap-zelfstudie bespreekt TreeMap-klasse, Iteratie, TreeMap-voorbeelden, implementatie, Java Hashmap versus Treemap, TreeMap API-methoden enz.:
Een TreeMap-gegevensstructuur is een verzameling waarin sleutel-waardeparen in een natuurlijk gesorteerde volgorde worden opgeslagen. Een TreeMap is een onderdeel van het Java Collections Framework en is een kaartimplementatie.
Bekijk hier ALLE Java-tutorials.
Wat je leert:
Java TreeMap
Enkele van de belangrijkste kenmerken van TreeMap in Java zijn als volgt:
- De klasse TreeMap die treemap implementeert in Java, maakt deel uit van het pakket java.util. Het implementeert de kaartinterface.
- De klasse TreeMap breidt de klasse AbstractMap uit en implementeert ook de interface NavigableMap en SortedMap (indirect).
- TreeMap is niet gesynchroniseerd.
- TreeMap-elementen zijn standaard in oplopende volgorde.
- TreeMap staat geen dubbele elementen toe.
- TreeMap staat null-waarden toe, maar geen null-sleutels.
Het onderstaande diagram toont de klassenhiërarchie voor de TreeMap-klasse.
Zoals eerder vermeld, implementeert de TreeMap-klasse een NavigableMap-interface die op zijn beurt de SortedMap-klasse uitbreidt. SortedMap neemt verder de kaartinterface over.
Verklaring van TreeMap-klasse
De algemene verklaring van de TreeMap-klasse wordt hieronder gegeven:
waarbij K => type sleutels onderhouden door TreeMap
V => type van de toegewezen waarden
TreeMap-voorbeeld
Het onderstaande programma toont een eenvoudig voorbeeld van een TreeMap-datastructuur.
Uitgang:
Inhoud van TreeMap:
{100 = Pune 101 = Hyderabad 102 = Jaipur 103 = Bangaluru}
In dit programma hebben we een eenvoudig TreeMap-object met de naam steden_map gedefinieerd en vervolgens met behulp van de methode put geïnitialiseerd met sleutel-waardeparen.
Vervolgens gebruiken we de entrySet () - methode van de TreeMap-klasse en herhalen we deze set met een forEach-lus om de sleutel / waarde-paren af te drukken. Voor het afdrukken van sleutel-waardeparen gebruiken we respectievelijk de methoden getKey () en getValue ().
welke van de volgende opties is geen acceptabele manier om een responsief ontwerp te testen?
TreeMap API-methoden en constructeurs
In deze sectie zullen we de verschillende constructors en methoden bespreken die door de TreeMap-klasse worden geleverd.
Constructeurs
Constructor-prototype | Omschrijving | |
---|---|---|
aflopende kaart | NavigableMap aflopendMap () | Retourneert gegeven sleutel / waarde-paren in omgekeerde volgorde. |
TreeMap () | Standaardconstructor om een lege TreeMap met natuurlijke volgorde te maken. | |
TreeMap (vergelijkingsvergelijker) | Maakt een lege TreeMap die wordt gesorteerd op basis van de opgegeven vergelijker. | |
TreeMap (Kaart m) | Maakt een TreeMap en initialiseert deze met de elementen van de gespecificeerde map, m. Bestellen is natuurlijk. | |
TreeMap (SortedMap m) | Maakt een TreeMap en geïnitialiseerd met SortedMap-items. Bestellen is hetzelfde als gesorteerdMap. |
Methoden
Methode | Methode Prototype | Omschrijving |
---|---|---|
plafondingang | Map.Entry ceilingEntry (K-toets) | Retourneert het kleinste sleutel / waarde-paar, zodat de sleutel groter is dan of gelijk is aan de opgegeven sleutel; null als er geen sleutel is |
plafondKey | K ceilingKey (K-toets) | Geeft de sleutel terug die kleiner en groter is dan de opgegeven sleutel; geeft null terug als er geen sleutel is. |
Doorzichtig | leegte duidelijk () | Verwijdert alle sleutel / waarde-paren uit de Treemap. |
kloon | Object kloon () | Maakt een ondiepe kopie van TreeMap-instantie. |
comparator | Comparator-comparator () | Retourneert een vergelijker die is gebruikt om de sleutels te rangschikken. null als bestellen natuurlijk is |
descendingKeySet | NavigableSet aflopendKeySet () | Geeft als resultaat NavigableSet-weergave van de TreeMap-sleutels in omgekeerde volgorde. |
eerste invoer | Map.Entry firstEntry () | Retourneert het laagste sleutel / waarde-paar. |
floorEntry | Map.Entry floorEntry (K-toets) | Geeft de grootste sleutel terug die kleiner is dan of gelijk is aan een bepaalde sleutel; null als er geen sleutel is |
voor elk | void forEach (BiConsumer-actie) | De gegeven actie wordt uitgevoerd voor elk item in de TreeMap. |
headMap | SortedMap headMap (K toKey) | Wordt gebruikt om een sleutel-waardepaar te retourneren, zodat de geretourneerde sleutel strikt kleiner is dan toKey |
headMap | NavigableMap headMap (K toKey, inclusief boolean) | Retourneert sleutel / waarde-paren van die sleutels die kleiner zijn dan de toKey of gelijk aan indien inclusief. |
hogere ingang | Map.Entry hogerEntry (K-toets) | Retourneert de kleinste sleutel of null. De geretourneerde sleutel is strikt groter dan de opgegeven sleutel. |
hogere sleutel | K hogere sleutel (K-toets) | Geeft de sleutel terug als de toewijzing aanwezig is voor de opgegeven sleutel in de Treemap. |
sleutelbos | Set keySet () | Retourneert de verzameling sleutels in de TreeMap. |
laatste invoer | Map.Entry lastEntry () | Retourneert het sleutel / waarde-paar zodat de sleutel de grootste sleutel is. Retourneert null als de sleutel niet bestaat. |
lowerEntry | Map.Entry lowerEntry (K-toets) | Retourneert het sleutel / waarde-paar zodat de sleutel het grootst en strikt kleiner is dan de opgegeven sleutel. Retourneert null als de sleutel niet bestaat. |
lowerKey | K lowerKey (K-toets) | Retourneert de grootste sleutel of null. De teruggegeven sleutel is strikt kleiner dan de opgegeven sleutel. |
navigableKeySet | NavigableSet navigableKeySet () | Retourneert de ‘NavigableSet’ met sleutels in de TreeMap. |
pollFirstEntry | Map.Entry pollFirstEntry () | Verwijdert en retourneert het sleutel / waarde-paar van de minste sleutel. |
pollLastEntry | Map.Entry pollLastEntry () | Verwijdert en retourneert het sleutel / waarde-paar van de grootste sleutel. |
zetten | V put (K-toets, V-waarde) | Voegt de gegeven sleutel en waarde toe aan de TreeMap. |
zet alle | void putAll (Kaartkaart) | Alle sleutel / waarde-paren van de gegeven kaart worden naar de TreeMap gekopieerd. |
vervangen | V vervangen (K-toets, V-waarde) | Vervangt of wijzigt de waarde van de gegeven sleutel door de opgegeven waarde. |
vervangen | boolean replace (K-toets, V oldValue, V newValue) | Vervangt oldValue van de opgegeven sleutel door newValue. |
vervang alles | void replaceAll (BiFunction-functie) | Roept de opgegeven functie op en vervangt alle vermeldingen door het resultaat van de functie. |
subMap | NavigableMap subMap (K fromKey, boolean fromInclusive, K toKey, boolean toInclusive) | Retourneert de sleutel / waarde-paren van sleutels van ‘fromKey’ naar ‘toKey’. |
SortedMap | SortedMap subMap (K fromKey, K toKey) | Retourneert sleutel / waarde-paren voor het bereik fromKey (inclusief) tot toKey (exclusief). |
tailMap | SortedMap tailMap (K fromKey) | Retourneert sleutel / waarde-paren zodanig dat de sleutels groter zijn dan of gelijk zijn aan fromKey. |
tailMap | NavigableMap tailMap (K fromKey, inclusief boolean) | Retourneert sleutel / waarde-paren voor de sleutels die gelijk zijn aan fromKey (inclusief = true) of groter dan fromKey. |
bevatKey | boolean containsKey (Object sleutel) | Controleert of er een mapping is voor de gegeven sleutel in de Treemap. Retourneert true indien ja. |
bevatValue | boolean containsValue (waarde van het object) | Controleert of er een sleutel is toegewezen aan de opgegeven waarde. Retourneert ja indien waar. |
firstKey | K firstKey () | Retourneert de laagste sleutel of de eerste sleutel in de gesorteerde kaart |
krijgen | V get (Objectsleutel) | Haalt de waarde op die is toegewezen aan de opgegeven sleutel |
lastKey | K lastKey () | Retourneert de laatste sleutel of de hoogste sleutel in de gesorteerde kaart. |
verwijderen | V remove (Objectsleutel) | Verwijdert het sleutel / waarde-paar voor de opgegeven sleutel in de TreeMap |
entrySet | Set | Retourneert de set voor de opgegeven TreeMap. |
grootte | int maat () | Retourneert de grootte of het totale aantal sleutel / waarde-paren in de TreeMap. |
waarden | Verzamelingswaarden () | Retourneert een verzameling van de waarden voor de TreeMap. |
Itereren door TreeMap
TreeMap bestaat uit sleutel / waarde-paren. De TreeMap-klasse biedt een methode ‘entrySet’ die sleutel-waardeparen in de kaart retourneert. We kunnen deze items doorlopen met behulp van de forEach-lus en sleutels en waarden weergeven met respectievelijk de methoden getKey () en getValue ().
Dit wordt getoond in het onderstaande Java-programma:
Uitgang:
De inhoud van TreeMap:
(B => Blauw)
(G => Groen)
(M => Magenta)
(R => Rood)
TreeMap-implementatie in Java
Het volgende Java-programma demonstreert de belangrijkste methode van de TreeMap-klasse die hierboven is besproken.
Uitgang:
Oorspronkelijke kaart: {1 = 1, 2 = 4, 3 = 9, 4 = 16, 5 = 25, 6 = 36, 7 = 49, 8 = 64, 9 = 81, 10 = 100}
Dichtstbijzijnde lagere invoer dan 4: 3 = 9
Dichtstbijzijnde hogere invoer dan 4: 5 = 25
Dichtstbijzijnde lagere toets dan 4: 3
Dichtstbijzijnde verdiepingsingang dan 6: 6 = 36
Dichtstbijzijnde plafondingang dan 6: 6 = 36
TreeMap Eerste invoer: 1 = 1
TreeMap Laatste invoer: 10 = 100
Omgekeerde TreeMap: {10 = 100, 9 = 81, 8 = 64, 7 = 49, 6 = 36, 5 = 25, 4 = 16, 3 = 9, 2 = 4, 1 = 1}
TreeMap Eerste invoer: 1 = 1
TreeMap Laatste invoer: 10 = 100
Submap van 2 tot 6: {2 = 4, 3 = 9, 4 = 16, 5 = 25, 6 = 36}
HeadMap: {2 = 4, 3 = 9, 4 = 16, 5 = 25}
TailMap: {5 = 25, 6 = 36, 7 = 49, 8 = 64, 9 = 81}
Sorteer TreeMap op waarde
Standaard wordt TreeMap gesorteerd op basis van de sleutels volgens de natuurlijke volgorde. Maar als we de TreeMap op de waarden willen sorteren, dan moeten we de comparator gebruiken om de sortering te definiëren.
Het onderstaande Java-programma sorteert de TreeMap op waarde.
Uitgang:
De gesorteerde TreeMap op basis van waarden:
B: Blauw
C: cyaan
G: Groen
M: magenta
R: Rood
Java Hashmap versus Treemap
Laten we eens kijken naar enkele van de belangrijkste verschillen tussen een HashMap en TreeMap.
De onderstaande tabel laat deze verschillen zien.
Hash kaart | TreeMap |
---|---|
HashMap is veel sneller dan TreeMap. | TreeMap is langzamer |
Implementeert de kaartinterface. | Implementeert NavigableMap-interface. |
Gebruikt hashing-implementatietechniek | Gebruik een rood-zwarte boom voor implementatie |
Handhaaft geen enkele volgorde van elementen | De sleutels in de boomkaart zijn al geordend volgens de natuurlijke volgorde |
Staat één null-sleutel en veel null-waarden toe | Staat alleen null-waarden toe, maar sleutels kunnen niet null zijn |
Voert basisbewerkingen uit, zet en krijgt in constante tijd. | Neem log (n) de tijd om put- en get-bewerkingen uit te voeren |
HashMap heeft beperkte functionaliteit. | De TreeMap-klasse biedt veel extra functionaliteit die ons helpt de datastructuur te manipuleren. |
Gebruikt equals () - methode om te vergelijken. | Gebruikt de methode CompareTo () om te vergelijken. |
Veel Gestelde Vragen
V # 1) Wat is TreeMap in Java?
Antwoord: TreeMap in Java is een verzameling sleutel-waardeparen die al zijn gesorteerd. Het gebruikt een rood-zwarte boom voor implementatiedoeleinden. Java TreeMap implementeert de NavigableMap-interface naast de Map-interface en breidt ook de klasse AbstractMap uit.
Q # 2) Waarom gebruiken we TreeMap in Java?
Antwoord: De TreeMap wordt in Java gebruikt voor het implementeren van Map- en NavigableMap-interfaces en de klasse AbstractMap. Omdat de TreeMap-sleutels zijn gesorteerd volgens de natuurlijke volgorde, kunnen we deze gegevensstructuur gebruiken voor het opslaan van directorystructuur, boomhiërarchieën, enz.
Q # 3) Wat is beter - HashMap of TreeMap?
Antwoord: HashMap is beter dan TreeMap. HashMap heeft altijd constante tijd nodig om basisbewerkingen uit te voeren, terwijl TreeMap log (n) tijd nodig heeft om deze bewerkingen uit te voeren. Wanneer er grotere data-objecten bij betrokken zijn, presteert HashMap sneller in vergelijking met TreeMap.
Q # 4) Is TreeMap gesorteerd?
websites om anime engels nagesynchroniseerd te bekijken
Antwoord: Ja, de belangrijkste items in TreeMap zijn gesorteerd volgens natuurlijke volgorde. Met de TreeMap-klasse kunnen we ook een aangepaste comparator gebruiken om de TreeMap te sorteren op basis van waarden.
Q # 5) Is TreeMap thread-safe?
Antwoord: Nee, TreeMap is geen threadveilige verzameling.
Gevolgtrekking
In deze tutorial hebben we TreeMap in Java in detail besproken. TreeMap is een verzameling sleutel-waardeparen die de kaartinterface implementeert. Het implementeert ook een NavigableMap-interface. De elementen van de TreeMap zijn uniek en duplicaten zijn niet toegestaan.
We hebben de constructors en methoden van TreeMap gezien. We hebben ook het TreeMap-programma geïmplementeerd en de belangrijkste methoden van de TreeMap-klasse gedemonstreerd. Vervolgens bespraken we de verschillen tussen HashMap en TreeMap.
Bezoek hier om de Java-trainingsserie voor iedereen te zien.
Aanbevolen literatuur
- TreeSet in Java: zelfstudie met programmeervoorbeelden
- Binaire zoekboom in Java - Implementatie en codevoorbeelden
- JAVA-zelfstudie voor beginners: 100+ praktische Java-videotutorials
- Java String bevat () Method Tutorial met voorbeelden
- Wat is Java-vector | Java Vector Class-zelfstudie met voorbeelden
- Jagged Array in Java - Tutorial met voorbeelden
- Zelfstudie voor Java-scannerklassen met voorbeelden
- Zelfstudie over Java String | Java String-methoden met voorbeelden