En kort introduksjon til TreeMap i Java med eksempler



Denne artikkelen vil gi deg en detaljert og omfattende kunnskap om TreeMap i Java med eksempler på metoder og konstruktører.

Implementering av et kartgrensesnitt i Java er en veldig viktig oppgave. For dette formålet har vi TreeMap og HashMap . I denne artikkelen vil vårt fokus være på TreeMap i i følgende rekkefølge:

Hva er et TreeMap i Java?

Et TreeMap i Java brukes til å implementere Map-grensesnitt og NavigableMap sammen med Abstract Class. Kartet er sortert i henhold til den naturlige rekkefølgen på nøklene, eller av en komparator gitt på kartopprettingstid, avhengig av hvilken konstruktør som brukes. Dette viser seg å være en effektiv måte å sortere og lagre nøkkelverdiparene på.





TreeMap-in-JavaLagringsrekkefølgen som vedlikeholdes av trekartet må være i samsvar med lik akkurat som alle andre sorterte kart, uavhengig av eksplisitte komparatorer. Trekartetimplementering er ikke synkronisert i den forstand at hvis et kart er tilgjengelig av flere tråder, samtidig og minst en av trådene endrer kartet strukturelt, må det synkroniseres eksternt.

Funksjoner av TreeMaps

  • Denne klassen er medlem av Java Collections Framework.



  • Klassen implementerer kartgrensesnitt, inkludert NavigableMap, SortedMap og utvider AbstractMap

  • TreeMap i Java tillater ikke nullnøkler (som Map), og dermed kastes et NullPointerException. Imidlertid kan flere nullverdier assosieres med forskjellige nøkler.

  • Alle Map.Entry-parene returneres etter metoder i denne klassen, og dens synspunkter representerer øyeblikksbilder av kartlegginger på det tidspunktet de ble produsert.



  • De støtter ikke metoden Entry.setValue.

Viktige punkter å huske

  1. Bortsett fra å implementere Map-grensesnittet, implementerer Java TreeMap også NavigableMap og implementerer indirekte SortedMap-grensesnittet. TreeMap utvider også klassen AbstractMap.

  2. TreeMap-oppføringer sorteres i den naturlige rekkefølgen av nøklene. Det gir også en konstruktør som skal gi Comparator som skal brukes til bestilling. Så hvis du bruker en klasse som nøkkel, må du sørge for at den implementerer sammenlignbart grensesnitt for naturlig bestilling. Ta en titt på spørsmål om intervjuer med java-samlinger for å forstå viktigheten av disse metodene.

  3. Java TreeMap-implementering gir garantert logg (n) tidskostnad for den inneholder Key, get, put og fjern operasjoner.

  4. TreeMap er ikke synkronisert og dermed ikke trådsikker. For flertrådede miljøer kan du få en innpakket synkronisert ved hjelp av Collections.synchronizedSortedMap-metoden.

  5. TreeMap-metoder for å få nøkkelsett og verdier returnerer Iterator som er feilrask i naturen, så enhver samtidig endring vil kaste ConcurrentModificationException.

  6. TreeMap i java tillater ikke nullnøkler, men du kan ha flere nullverdier tilknyttet forskjellige nøkler.

Konstruktører i TreeMap

Bygger Beskrivelse
TreeMap () Konstruerer et tomt treemap som vil bli sortert ved hjelp av den naturlige rekkefølgen på nøklene.
TreeMap (Comparator comp) Konstruerer et tomt trebasert kart som vil bli sortert ved hjelp av Comparator comp.
TreeMap (Kart m) Initialiserer et trekart med oppføringene fra m, som vil bli sortert ved hjelp av den naturlige rekkefølgen på tastene.
TreeMap (SortedMap sm) Initialiserer et trekart med oppføringene fra SortedMap sm, som vil bli sortert i samme rekkefølge som sm.

Metoder i TreeMap

Metode Beskrivelse
ugyldig klart () Fjerner alle tilordninger fra denne TreeMap.
Objektklon () Returnerer en grunne kopi av denne TreeMap-forekomsten.
Sammenligningskomparator () Returnerer komparatoren som ble brukt til å bestille dette kartet, eller null hvis dette kartet bruker tastenes naturlige rekkefølge.
boolsk inneholderKey (Objektnøkkel) Returnerer sant hvis dette kartet inneholder en kartlegging for den angitte nøkkelen.
boolean containsValue (Objektverdi) Returnerer sant hvis dette kartet tilordner en eller flere nøkler til den angitte verdien.
Set entrySet () Returnerer en angitt visning av tilordningene i dette kartet.
Objekt førstKey () Returnerer den første (laveste) nøkkelen som er på dette sorterte kartet.
Object get (Objektnøkkel) Returnerer verdien som dette kartet tilordner den angitte nøkkelen til.
SortedMap headMap (Object toKey) Returnerer en visning av den delen av dette kartet hvis nøkler er strengt mindre enn å Tast.
Set keySet () Returnerer en settvisning av tastene i dette kartet.
Objekt lastKey () Returnerer den siste (høyeste) nøkkelen som er på dette sorterte kartet.
Object put (Objektnøkkel, Objektverdi) Knytter den spesifiserte verdien til den angitte nøkkelen på dette kartet.
void putAll (Kartkart) Kopierer alle tilordningene fra det angitte kartet til dette kartet.
Fjern objekt (Objektnøkkel) Fjerner kartleggingen for denne nøkkelen fra denne TreeMap hvis den er tilstede.
int størrelse () Returnerer antall nøkkelverdikartlegginger på dette kartet.
SortedMap subMap (Object fromKey, Object toKey) Returnerer en visning av den delen av dette kartet hvis nøkler spenner fra Key, inkludert, til Key, eksklusiv.
SortedMap tailMap (Object fromKey) Returnerer en visning av den delen av dette kartet hvis nøkler er større enn eller lik fra Key.
Samlingsverdier () Returnerer en samlevisning av verdiene i dette kartet.

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 lagrer elementer i naturlig rekkefølge av nøkler. TreeMap countryCapitalMap = new TreeMap () countryCapitalMap.put ('India', 'Delhi') countryCapitalMap.put ('Japan', 'Tokyo') countryCapitalMap.put ('France', 'Paris') countryCapitalMap.put ('Russia' , 'Moskva') System.out.println ('-----------------------------') // Iterere TreeMap ved hjelp av keySet ( ) og for hver sløyfe 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 (' ----------------------------- ' )}}

Produksjon:

hva er dvalemodus i java

Med dette kommer vi til en slutt på denne TreeMap i Java-artikkelen. C pokker ut av Edureka, et pålitelig online læringsfirma med et nettverk med mer enn 250 000 fornøyde elever spredt over hele verden. Edurekas Java J2EE- og SOA-opplæring og sertifiseringskurs er designet for studenter og fagpersoner som ønsker å være Java-utvikler. Kurset er designet for å gi deg et forsprang i Java-programmering og trene deg for både kjerne- og avanserte Java-konsepter sammen med forskjellige Java-rammer som Hibernate & Spring.

Har du spørsmål til oss? Vennligst nevn det i kommentarfeltet til denne 'TreeMap in Java' -bloggen, så kommer vi tilbake til deg så snart som mulig.