En kort introduktion til TreeMap i Java med eksempler



Denne artikel vil give dig en detaljeret og omfattende viden om TreeMap i Java med eksempler på metoder og konstruktører.

Implementering af en kortgrænseflade i Java er en meget vigtig opgave. Til dette formål har vi det TreeMap og HashMap . I denne artikel vil vores fokus være på TreeMap i i følgende rækkefølge:

Hvad er et TreeMap i Java?

Et TreeMap i Java bruges til at implementere Map-interface og NavigableMap sammen med Abstract Class. Kortet sorteres efter den naturlige rækkefølge af dets nøgler eller af en komparator, der leveres på kortoprettelsestidspunktet, afhængigt af hvilken konstruktør der bruges. Dette viser sig at være en effektiv måde at sortere og gemme nøgleværdiparene på.





TreeMap-in-JavaLagringsordren, der opretholdes af trækortet, skal være i overensstemmelse med ligesom ethvert andet sorteret kort, uanset de eksplicitte komparatorer. Trækortetimplementering er ikke synkroniseret i den forstand, at hvis et kort tilgås af flere tråde, samtidig og mindst en af ​​tråde ændrer kortet strukturelt, skal det synkroniseres eksternt.

Funktioner af TreeMaps

  • Denne klasse er medlem af Java Collections Framework.



  • Klassen implementerer kortgrænseflader inklusive NavigableMap, SortedMap og udvider AbstractMap

  • TreeMap i Java tillader ikke nøgletaster (som Map), og dermed kastes en NullPointerException. Imidlertid kan flere nulværdier tilknyttes forskellige nøgler.

  • Alle Map.Entry-par, der returneres efter metoder i denne klasse, og dets synspunkter repræsenterer snapshots af kortlægninger på det tidspunkt, de blev produceret.



  • De understøtter ikke metoden Entry.setValue.

    afslut et program i java

Vigtige punkter at huske

  1. Bortset fra at implementere Map-grænsefladen implementerer Java TreeMap også NavigableMap og implementerer indirekte SortedMap-grænsefladen. TreeMap udvider også klassen AbstractMap.

  2. TreeMap-poster sorteres i den naturlige rækkefølge af dens nøgler. Det giver også en konstruktør, der skal levere Comparator, der skal bruges til bestilling. Så hvis du bruger en klasse som nøgle, skal du sørge for, at den implementerer sammenlignelig grænseflade til naturlig bestilling. Tjek spørgsmål om javasamlingsinterview for at forstå vigtigheden af ​​disse metoder.

  3. Java TreeMap-implementering giver garanterede log (n) tidsomkostninger for den indeholder Key, get, put og fjern operationer.

    java konvertere dobbelt til heltal
  4. TreeMap er ikke synkroniseret og er derfor ikke trådsikker. For multitrådede miljøer kan du få en indpakket synkroniseret ved hjælp af Collections.synchronizedSortedMap-metoden.

  5. TreeMap-metoder til at få nøglesæt og værdier returnerer Iterator, der er failhurtig i naturen, så enhver samtidig ændring vil kaste ConcurrentModificationException.

  6. TreeMap i java tillader ikke nul-nøgler, men du kan have flere nulværdier tilknyttet forskellige nøgler.

Konstruktører i TreeMap

Bygger Beskrivelse
TreeMap () Konstruerer et tomt treemap, der vil blive sorteret ved hjælp af dens naturlige rækkefølge.
TreeMap (Comparator comp) Konstruerer et tomt træbaseret kort, der vil blive sorteret ved hjælp af Comparator comp.
TreeMap (kort m) Initialiserer et trækort med posterne fra m, som sorteres ved hjælp af den naturlige rækkefølge på tasterne.
TreeMap (SortedMap sm) Initialiserer et trækort med posterne fra SortedMap sm, som sorteres i samme rækkefølge som sm.

Metoder i TreeMap

Metode Beskrivelse
ugyldigt klart () Fjerner alle tilknytninger fra dette TreeMap.
Objektklon () Returnerer en lav kopi af denne TreeMap-forekomst.
Komparator komparator () Returnerer komparatoren, der blev brugt til at bestille dette kort, eller null, hvis dette kort bruger dens naturlige rækkefølge.
boolean containKey (Objektnøgle) Returnerer sandt, hvis dette kort indeholder en kortlægning for den angivne nøgle.
boolean containValue (Objektværdi) Returnerer sandt, hvis dette kort kortlægger en eller flere nøgler til den angivne værdi.
Indstil entrySet () Returnerer en sæt visning af kortlægningerne på dette kort.
Objekt førstKey () Returnerer den første (laveste) nøgle i øjeblikket på dette sorterede kort.
Objekt få (Objektnøgle) Returnerer den værdi, som dette kort kortlægger den angivne nøgle til.
SortedMap headMap (Object toKey) Returnerer en visning af den del af dette kort, hvis nøgler er strengt mindre end toKey.
Set keySet () Returnerer en sætvisning af tasterne på dette kort.
Objekt lastKey () Returnerer den sidste (højeste) nøgle i øjeblikket på dette sorterede kort.
Objekt sæt (Objektnøgle, Objektværdi) Knytter den angivne værdi til den angivne nøgle på dette kort.
void putAll (Kortkort) Kopierer alle kortlægningerne fra det angivne kort til dette kort.
Fjern objekt (Objektnøgle) Fjerner kortlægningen for denne nøgle fra denne TreeMap, hvis den findes.
int størrelse () Returnerer antallet af nøgleværditilknytninger på dette kort.
SortedMap subMap (Object fromKey, Object toKey) Returnerer en visning af den del af dette kort, hvis nøgler spænder fra nøgle inklusive, til taster, eksklusive.
SortedMap tailMap (Object fromKey) Returnerer en visning af den del af dette kort, hvis nøgler er større end eller lig med fromKey.
Samlingsværdier () Returnerer en samlingsvisning af værdierne på dette kort.

Eksempel på TreeMap i Java

import java.util.TreeMap public class TreeMapMain {public static void main (String args []) {// TreeMap with Country as key and capital as value // TreeMap gemmer elementer i naturlig rækkefølge af nøgler. TreeMap countryCapitalMap = new TreeMap () countryCapitalMap.put ('India', 'Delhi') countryCapitalMap.put ('Japan', 'Tokyo') countryCapitalMap.put ('France', 'Paris') countryCapitalMap.put ('Rusland' , 'Moskva') System.out.println ('-----------------------------') // Iterering af TreeMap ved hjælp af keySet ( ) og for hver løkke System.out.println ('Iterating TreeMap Using keySet () and for each loop') for (String countryKey: countryCapitalMap.keySet ()) {System.out.println ('Country:' + countryKey + ' og hovedstad: '+ countryCapitalMap.get (countryKey))} System.out.println (' ----------------------------- ' )}}

Produktion:

Med dette kommer vi til slutningen af ​​denne TreeMap i Java-artikel. C Heck ud af af Edureka, et pålideligt online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden. Edurekas Java J2EE- og SOA-uddannelses- og certificeringskursus er designet til studerende og fagfolk, der ønsker at være Java-udvikler. Kurset er designet til at give dig et forspring i Java-programmering og træne dig til både kerne- og avancerede Java-koncepter sammen med forskellige Java-rammer som Hibernate & Spring.

Har du et spørgsmål til os? Nævn det i kommentarfeltet på denne 'TreeMap in Java' -blog, og vi vender tilbage til dig hurtigst muligt.