Een korte introductie tot TreeMap in Java met voorbeelden



Dit artikel biedt u een gedetailleerde en uitgebreide kennis van TreeMap in Java met voorbeelden van methoden en constructeurs.

Het implementeren van een kaartinterface in Java is een zeer belangrijke taak. Voor dit doel hebben we TreeMap en Hash kaart . In dit artikel zal onze focus liggen op TreeMap in in de volgende volgorde:

Wat is een TreeMap in Java?

Een TreeMap in Java wordt gebruikt om de kaartinterface en NavigableMap samen met de abstracte klasse te implementeren. De kaart wordt gesorteerd volgens de natuurlijke volgorde van de sleutels, of door een comparator die wordt verstrekt tijdens het maken van de kaart, afhankelijk van welke constructor wordt gebruikt. Dit blijkt een efficiënte manier te zijn om de sleutel / waarde-paren te sorteren en op te slaan.





hoe je een programma in java afsluit

TreeMap-in-JavaDe opslagvolgorde die wordt bijgehouden door de boomkaart moet consistent zijn met gelijken, net als elke andere gesorteerde kaart, ongeacht de expliciete vergelijkers. De boomkaartimplementatie is niet gesynchroniseerd in de zin dat als een map door meerdere threads gelijktijdig wordt benaderd en ten minste één van de threads de map structureel wijzigt, deze extern moet worden gesynchroniseerd.

Kenmerken van TreeMaps

  • Deze klasse is lid van het Java Collections Framework.



  • De klasse implementeert kaartinterfaces, waaronder NavigableMap, SortedMap en breidt AbstractMap uit

  • TreeMap in Java staat geen null-sleutels toe (zoals Map) en daarom wordt een NullPointerException gegenereerd. Er kunnen echter meerdere null-waarden aan verschillende sleutels worden gekoppeld.

  • Alle Map.Entry-paren die worden geretourneerd door methoden in deze klasse en de weergaven ervan vertegenwoordigen momentopnamen van toewijzingen op het moment dat ze werden geproduceerd.



  • Ze ondersteunen de Entry.setValue-methode niet.

Belangrijke punten om te onthouden

  1. Naast het implementeren van de kaartinterface, implementeert Java TreeMap ook NavigableMap en indirect de SortedMap-interface. TreeMap breidt ook de klasse AbstractMap uit.

  2. TreeMap-items worden gesorteerd in de natuurlijke volgorde van de sleutels. Het biedt ook een constructor om Comparator te bieden die kan worden gebruikt voor het bestellen. Dus als u een klasse als sleutel gebruikt, zorg er dan voor dat deze een vergelijkbare interface implementeert voor natuurlijke ordening. Bekijk interviewvragen over Java-collecties om het belang van deze methoden te begrijpen.

  3. Java TreeMap-implementatie biedt gegarandeerde log (n) tijdkosten voor de bewerkingen containsKey, get, put en remove.

    lengte van een array javascript
  4. TreeMap is niet gesynchroniseerd en daarom niet thread-safe. Voor omgevingen met meerdere threads kunt u een ingepakte synchronisatie krijgen met de methode Collections.synchronizedSortedMap.

  5. TreeMap-methoden om keyset en waarden te krijgen, retourneren Iterator die van nature fail-fast is, dus elke gelijktijdige wijziging zal ConcurrentModificationException genereren.

  6. TreeMap in Java staat geen null-sleutels toe, maar u kunt meerdere null-waarden hebben die aan verschillende sleutels zijn gekoppeld.

Constructeurs in TreeMap

Bouwer Omschrijving
TreeMap () Maakt een lege boomkaart die wordt gesorteerd volgens de natuurlijke volgorde van de sleutels.
TreeMap (Comparator-comp) Construeert een lege boomgebaseerde kaart die wordt gesorteerd met behulp van de Comparator-comp.
TreeMap (Kaart m) Initialiseert een boomschema met de invoer van m, die wordt gesorteerd volgens de natuurlijke volgorde van de toetsen.
TreeMap (SortedMap sm) Initialiseert een treemap met de items uit de SortedMap sm, die in dezelfde volgorde als sm worden gesorteerd.

Methoden in TreeMap

Methode Omschrijving
leegte duidelijk () Verwijdert alle toewijzingen uit deze TreeMap.
Object kloon () Retourneert een ondiepe kopie van deze TreeMap-instantie.
Comparator-comparator () Geeft als resultaat de vergelijker die is gebruikt om deze kaart te ordenen, of null als deze kaart de natuurlijke volgorde van de sleutels gebruikt.
boolean containsKey (Object sleutel) Geeft true terug als deze kaart een afbeelding bevat voor de opgegeven sleutel.
boolean containsValue (waarde van het object) Geeft true terug als deze kaart een of meer sleutels toewijst aan de opgegeven waarde.
Invoer instellenSet () Retourneert een vaste weergave van de toewijzingen in deze kaart.
Object eerstKey () Retourneert de eerste (laagste) sleutel die momenteel op deze gesorteerde kaart staat.
Object get (Objectsleutel) Retourneert de waarde waaraan deze map de opgegeven sleutel toewijst.
SortedMap headMap (Object toKey) Geeft een weergave terug van het gedeelte van deze map waarvan de sleutels strikt kleiner zijn dan toKey.
Set keySet () Retourneert een setweergave van de sleutels in deze kaart.
Object lastKey () Retourneert de laatste (hoogste) sleutel die momenteel op deze gesorteerde kaart staat.
Object put (Objectsleutel, Objectwaarde) Associeert de opgegeven waarde met de opgegeven sleutel op deze kaart.
void putAll (Kaartkaart) Kopieert alle toewijzingen van de opgegeven kaart naar deze kaart.
Object verwijderen (Objectsleutel) Verwijdert de toewijzing voor deze sleutel uit deze TreeMap, indien aanwezig.
int maat () Retourneert het aantal sleutelwaarde-toewijzingen in deze toewijzing.
SortedMap subMap (Object fromKey, Object toKey) Retourneert een weergave van het gedeelte van deze kaart waarvan de sleutels variëren van Sleutel, inclusief tot tot Sleutel, exclusief.
SortedMap tailMap (Object fromKey) Retourneert een weergave van het gedeelte van deze kaart waarvan de sleutels groter zijn dan of gelijk zijn aan fromKey.
Verzamelingswaarden () Retourneert een verzamelingsweergave van de waarden in deze kaart.

Voorbeeld van TreeMap in Java

import java.util.TreeMap public class TreeMapMain {public static void main (String args []) {// TreeMap met Country als sleutel en kapitaal als waarde // TreeMap slaat elementen op in natuurlijke volgorde van sleutels. TreeMap countryCapitalMap = nieuw TreeMap () countryCapitalMap.put ('India', 'Delhi') countryCapitalMap.put ('Japan', 'Tokio') countryCapitalMap.put ('Frankrijk', 'Parijs') countryCapitalMap.put ('Rusland') , 'Moscow') System.out.println ('-----------------------------') // TreeMap herhalen met keySet ( ) en voor elke lus System.out.println ('Iterating TreeMap using keySet () en voor elke lus') voor (String countryKey: countryCapitalMap.keySet ()) {System.out.println ('Country:' + countryKey + ' en Hoofdstad: '+ countryCapitalMap.get (countryKey))} System.out.println (' ----------------------------- ' )}}

Uitgang:

Hiermee komen we aan het einde van dit TreeMap in Java-artikel. C ach uit de door Edureka, een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld. De training- en certificeringcursus Java J2EE en SOA van Edureka is bedoeld voor studenten en professionals die Java Developer willen worden. De cursus is bedoeld om u een voorsprong te geven in het programmeren van Java en u te trainen in zowel kern- als geavanceerde Java-concepten, samen met verschillende Java-frameworks zoals Hibernate & Spring.

Heeft u een vraag voor ons? Vermeld het in het commentaargedeelte van deze 'TreeMap in Java' -blog en we nemen zo snel mogelijk contact met u op.