treemap java tutorial with java treemap examples
Denne Java TreeMap-opplæringen diskuterer TreeMap-klasse, Iterasjon, TreeMap-eksempler, Implementering, Java Hashmap vs Treemap, TreeMap API-metoder osv .:
En TreeMap-datastruktur er en samling som lagrer nøkkelverdipar i en naturlig sortert rekkefølge. Et TreeMap er en del av Java Collections Framework og er en kartimplementering.
=> Sjekk ALLE Java-opplæringsprogrammer her.
Hva du vil lære:
Java TreeMap
Noen av de viktigste egenskapene til TreeMap i Java er som følger:
- TreeMap-klassen som implementerer treemap i Java er en del av java.util-pakken. Den implementerer Map-grensesnittet.
- TreeMap-klassen utvider klassen AbstractMap og implementerer også grensesnittet NavigableMap og SortedMap (indirekte).
- TreeMap er ikke synkronisert.
- Som standard er TreeMap-elementene i stigende rekkefølge som standard.
- TreeMap tillater ikke dupliserte elementer.
- TreeMap tillater nullverdier, men ikke nulltaster.
Diagrammet nedenfor viser klassehierarkiet for TreeMap-klassen.
Som allerede nevnt implementerer TreeMap-klassen et NavigableMap-grensesnitt som igjen utvider SortedMap-klassen. SortedMap arver kartgrensesnittet ytterligere.
Erklæring om TreeMap-klasse
Den generelle erklæringen til TreeMap-klassen er gitt nedenfor:
public class TreeMap extends AbstractMap implements NavigableMap, Cloneable, Serializable
der K => type nøkler vedlikeholdt av TreeMap
V => type tilordnede verdier
TreeMap-eksempel
Programmet nedenfor viser et enkelt eksempel på en TreeMap-datastruktur.
import java.util.*; class Main{ public static void main(String args()){ //declare a TreeMap and initialize it TreeMap cities_map=new TreeMap (); cities_map.put(100,'Pune'); cities_map.put(102,'Jaipur'); cities_map.put(101,'Hyderabad'); cities_map.put(103,'Bangaluru'); //print the TreeMap contents using forEach System.out.println('Contents of TreeMap:'); System.out.print('{'); for(Map.Entry entries:cities_map.entrySet()){ System.out.print(entries.getKey()+' = '+entries.getValue() + ' '); } System.out.println('}'); } }
Produksjon:
Innholdet i TreeMap:
{100 = Pune 101 = Hyderabad 102 = Jaipur 103 = Bangaluru}
I dette programmet har vi definert et enkelt TreeMap-objekt med navnet, towns_map, og deretter bruker vi put-metoden, og vi har initialisert det til nøkkelverdipar.
Deretter bruker vi entrySet () -metoden til TreeMap-klassen og gjentar dette settet ved hjelp av en forEach-løkke for å skrive ut nøkkelverdiparene. For å skrive ut nøkkelverdipar bruker vi henholdsvis getKey () og getValue () -metoder.
beste gratis python ide for windows
TreeMap API Metoder og konstruktører
I denne delen vil vi diskutere de forskjellige konstruktørene og metodene som tilbys av TreeMap-klassen.
Konstruktører
Konstruktørprototype | Beskrivelse | |
---|---|---|
synkendeKart | NavigableMap descendingMap () | Returnerer gitte nøkkelverdipar i omvendt rekkefølge. |
TreeMap () | Standardkonstruktør for å lage et tomt TreeMap med naturlig rekkefølge. | |
TreeMap (Comparator Comparator) | Konstruerer en tom TreeMap som er sortert basert på den spesifiserte komparatoren. | |
TreeMap (Kart m) | Konstruerer et TreeMap og initialiserte det med elementene i det angitte kartet, m. Bestilling er naturlig. | |
TreeMap (SortedMap m) | Konstruerer et TreeMap og initialiserte det med SortedMap-oppføringer. Bestilling er den samme som sortedMap. |
Metoder
Metode | Metode Prototype | Beskrivelse |
---|---|---|
taket | Map.Entry ceilingEntry (K-tast) | Returnerer det minste nøkkelverdiparet slik at nøkkelen er større enn eller lik spesifisert nøkkel; null hvis det ikke er noen nøkkel |
taknøkkel | K-takKey (K-tast) | Returnerer nøkkelen som er minst og større enn den gitte nøkkelen; returnerer null hvis ingen nøkkel. |
klar | ugyldig klar () | Sletter alle nøkkelverdiparene fra Treemap. |
klone | Objektklon () | Lager en grunne kopi av TreeMap-forekomsten. |
komparator | Sammenligningskomparator () | Returnerer en komparator som brukes til å ordne nøklene. null hvis bestilling er naturlig |
descendingKeySet | NavigableSet descendingKeySet () | Returnerer NavigableSet visning av TreeMap-tastene i omvendt rekkefølge. |
firstEntry | Map.Entry firstEntry () | Returnerer det minste nøkkelverdiparet. |
etasje | Map.Entry floorEntry (K-tast) | Returnerer største nøkkel som er mindre enn eller lik en gitt nøkkel; null hvis ingen slik nøkkel |
for hver | ugyldig forEach (BiConsumer action) | Den gitte handlingen utføres for hver oppføring i TreeMap. |
headMap | SortedMap headMap (K toKey) | Brukes til å returnere et nøkkelverdipar slik at den returnerte nøkkelen er strengt mindre enn toKey |
headMap | NavigableMap headMap (K toKey, inkludert boolsk) | Returnerer nøkkelverdipar av nøklene som er mindre enn toKey eller lik hvis inkludert. |
høyere inngang | Map.Entry higherEntry (K-tast) | Returnerer minst nøkkel eller null. Den returnerte nøkkelen er strengt tatt større enn den gitte nøkkelen. |
høyereKey | K høyereKey (K-tast) | Returnerer nøkkelen hvis kartleggingen er til stede for den gitte nøkkelen i Treemap. |
keySet | Set keySet () | Returnerer settsamlingen av nøklene i TreeMap. |
lastEntry | Map.Entry lastEntry () | Returnerer nøkkelverdiparet slik at nøkkelen er den største nøkkelen. Returnerer null hvis nøkkelen ikke eksisterer. |
lavere inngang | Map.Entry lowerEntry (K-tast) | Returnerer nøkkelverdiparet slik at nøkkelen er størst og strengt mindre enn den gitte nøkkelen. Returnerer null hvis nøkkelen ikke eksisterer. |
lavere nøkkel | K lavere tast (K-tast) | Returnerer den største nøkkelen eller null. Den returnerte nøkkelen er strengt mindre enn den gitte nøkkelen. |
navigableKeySet | NavigableSet navigableKeySet () | Returnerer ‘NavigableSet’ av tastene i TreeMap. |
pollFirstEntry | Map.Entry pollFirstEntry () | Fjerner og returnerer deretter den minste nøkkelens nøkkelverdipar. |
pollLastEntry | Map.Entry pollLastEntry () | Fjerner og returnerer den største nøkkelens nøkkelverdipar. |
sette | V put (K-tast, V-verdi) | Legger til gitt nøkkel og verdi i TreeMap. |
putt alle | void putAll (Kartkart) | Alle nøkkelverdiparene fra det gitte kartet kopieres til TreeMap. |
erstatte | V erstatt (K-tast, V-verdi) | Erstatter eller endrer verdien på den gitte nøkkelen med den gitte verdien. |
erstatte | boolsk erstatning (K-tast, V oldValue, V newValue) | Erstatter oldValue av den gitte nøkkelen med newValue. |
erstatte alle | ugyldig erstatte alle (BiFunction-funksjon) | Påkaller den gitte funksjonen og erstatter alle oppføringene med resultatet av funksjonen. |
underkart | NavigableMap subMap (K fromKey, boolean fromInclusive, K toKey, boolean toInclusive) | Returnerer nøkkelverdiparene med nøkler fra 'fromKey' til 'toKey'. |
SortedMap | SortedMap subMap (K fromKey, K toKey) | Returnerer nøkkelverdipar for området fraKey (inklusive) tilKey (eksklusiv). |
tailMap | SortedMap tailMap (K fromKey) | Returnerer nøkkelverdipar slik at tastene er større enn eller like fraKey. |
tailMap | NavigableMap tailMap (K fromKey, inkludert boolsk) | Returnerer nøkkelverdipar for nøklene som er like fromKey (inklusive = true) eller større enn fromKey. |
inneholder nøkkel | boolsk inneholderKey (Objektnøkkel) | Sjekker om det er en kartlegging av den gitte nøkkelen i Treemap. Returnerer sant hvis ja. |
inneholder verdi | boolsk inneholderValue (Objektverdi) | Sjekker om det er en nøkkel som er kartlagt med den gitte verdien. Returnerer ja hvis det er sant. |
firstKey | K firstKey () | Returnerer den laveste eller første tasten i det sorterte kartet |
få | V get (Objektnøkkel) | Henter verdien som er tilordnet den gitte nøkkelen |
lastKey | K lastKey () | Returnerer siste nøkkel eller høyeste nøkkel i det sorterte kartet. |
ta vekk | V fjerne (Objektnøkkel) | Sletter nøkkelverdiparet for den gitte nøkkelen i TreeMap |
entrySet | Sett | Returnerer settet for gitt TreeMap. |
størrelse | int størrelse () | Returnerer størrelse eller totalt antall nøkkelverdipar i TreeMap. |
verdier | Samlingsverdier () | Returnerer samling av verdiene for TreeMap. |
Iterere gjennom TreeMap
TreeMap består av nøkkelverdipar. TreeMap-klassen gir en metode ‘entrySet’ som returnerer nøkkelverdipar på kartet. Vi kan gjenta gjennom disse oppføringene ved hjelp av forEach loop- og displaytaster og verdier ved hjelp av henholdsvis getKey () og getValue () -metoder.
Dette vises i Java-programmet nedenfor:
import java.util.Map; import java.util.TreeMap; class Main { public static void main(String() arg){ //declare and initialize TreeMap Map colorsTree = new TreeMap(); colorsTree.put('R', 'Red'); colorsTree.put('G', 'Green'); colorsTree.put('B', 'Blue'); colorsTree.put('M', 'Magenta'); System.out.println('The contents of TreeMap:'); // retrieve set of map entries using entrySet method for (Map.Entry Map_entry : colorsTree.entrySet()) //print key-value pairs using getKey() and getValue() System.out.println( '(' + Map_entry.getKey() + '=>' + Map_entry.getValue() + ')'); } }
Produksjon:
Innholdet i TreeMap:
(B => Blå)
(G => Grønn)
(M => Magenta)
(R => Rød)
TreeMap-implementering i Java
Følgende Java-program viser hovedmetoden til TreeMap-klassen diskutert ovenfor.
import java.util.Map; import java.util.Map.Entry; import java.util.TreeMap; public class Main { public static void main(String() args) { //declare a TreeMap Object and initialize it with values TreeMap map = new TreeMap<>(); for(int i=1;i<=10;i++) { map.put(i, (i*i)+''); } System.out.println('Original Map:' + map); //lowerEntry, higherEntry Entry entry = map.lowerEntry(4); System.out.println('Closest Lower Entry than 4:'+entry); entry = map.higherEntry(4); System.out.println('Closest Higher Entry than 4:'+entry); System.out.println('Closest Lower key than 4 :'+map.lowerKey(4)); entry = map.floorEntry(6); System.out.println('Closest floor entry than 6: '+entry); entry = map.ceilingEntry(6); System.out.println('Closest ceiling Entry than 6 :'+entry); entry = map.firstEntry(); System.out.println('TreeMap First Entry:'+entry); entry = map.lastEntry(); System.out.println('TreeMap Last Entry:'+entry); Map reversedMap = map.descendingMap(); System.out.println('Reversed TreeMap: '+reversedMap); //pollFirstEntry, pollLastEntry entry = map.pollFirstEntry(); System.out.println('TreeMap First Entry:'+entry); entry = map.pollLastEntry(); System.out.println('TreeMap Last Entry:'+entry); //subMap Map subMap = map.subMap(2, true, 6, true); System.out.println('Submap from 2 to 6: '+subMap); //headMap subMap = map.headMap(5, true); System.out.println('HeadMap: '+subMap); //tailMap subMap = map.tailMap(5, true); System.out.println('TailMap: '+subMap); } }
Produksjon:
Opprinnelig kart: {1 = 1, 2 = 4, 3 = 9, 4 = 16, 5 = 25, 6 = 36, 7 = 49, 8 = 64, 9 = 81, 10 = 100}
Nærmeste nedre oppføring enn 4: 3 = 9
Nærmeste høyere oppføring enn 4: 5 = 25
Nærmeste nedre nøkkel enn 4: 3
Nærmeste etasjeoppføring enn 6: 6 = 36
Nærmeste tak Oppføring enn 6: 6 = 36
TreeMap Første oppføring: 1 = 1
TreeMap Siste oppføring: 10 = 100
Omvendt TreeMap: {10 = 100, 9 = 81, 8 = 64, 7 = 49, 6 = 36, 5 = 25, 4 = 16, 3 = 9, 2 = 4, 1 = 1}
TreeMap Første oppføring: 1 = 1
TreeMap Siste oppføring: 10 = 100
Underkart fra 2 til 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}
Sorter TreeMap etter verdi
Som standard er TreeMap sortert basert på tastene i henhold til naturlig rekkefølge. Men hvis vi vil sortere TreeMap i henhold til verdiene, må vi bruke komparatoren for å definere sorteringen.
Java-programmet nedenfor sorterer TreeMap etter verdi.
import java.util.*; class Main { //Method for sorting the TreeMap based on values public static > Map sortTreeMap(final Map map) { //define a comaprator to sort TreeMap on values Comparator valueComparator = new Comparator() { public int compare(K k1, K k2) { int compare = map.get(k1).compareTo(map.get(k2)); if (compare == 0) return 1; else return compare; } }; //use the comparator to sort the TreeMap and return sortedTreeMap Map sortedTreeMap = new TreeMap(valueComparator); sortedTreeMap.putAll(map); return sortedTreeMap; } public static void main(String args()) { //define and initialize the TreeMap TreeMap treemap = new TreeMap(); treemap.put('R', 'Red'); treemap.put('G', 'Green'); treemap.put('B', 'Blue'); treemap.put('C', 'Cyan'); treemap.put('M', 'Magenta'); // call method sortTreeMap to sort the TreeMap Map sortedTreeMap = sortTreeMap(treemap); // Retrieve set of the entries on the sorted map Set set = sortedTreeMap.entrySet(); System.out.println('The sorted TreeMap based on Values:'); // Now define iterator on this set Iterator i = set.iterator(); // Print TreeMap elements while(i.hasNext()) { Map.Entry me = (Map.Entry)i.next(); System.out.print(me.getKey() + ': '); System.out.println(me.getValue()); } } }
Produksjon:
Det sorterte TreeMap basert på verdier:
B: Blå
C: Cyan
G: Grønn
M: Magenta
R: Rød
Java Hashmap vs Treemap
La oss se noen av de største forskjellene mellom en HashMap og TreeMap.
Tabellen nedenfor viser disse forskjellene.
HashMap | TreeMap |
---|---|
HashMap er mye raskere enn TreeMap. | TreeMap er tregere |
Implementerer kartgrensesnittet. | Implementerer NavigableMap-grensesnitt. |
Bruker hashing implementeringsteknikk | Bruk et rød-svart tre for implementering |
Opprettholder ingen ordre med elementer | Tastene i trekartet er allerede bestilt i henhold til naturlig bestilling |
Tillater en nullnøkkel og mange nullverdier | Tillater bare nullverdier, men nøkler kan ikke være null |
Utfører grunnleggende operasjoner, sette og komme i konstant tid. | Ta loggen (n) tid til å utføre put and get-operasjoner |
HashMap har begrenset funksjonalitet. | TreeMap-klassen gir mye ekstra funksjonalitet som hjelper oss med å manipulere datastrukturen. |
Bruker lik () metode for å sammenligne. | Bruker comparTo () -metoden for å sammenligne. |
ofte stilte spørsmål
Q # 1) Hva er TreeMap i Java?
Svar: TreeMap i Java er en samling nøkkelverdipar som allerede er sortert. Den bruker et rød-svart tre for implementeringsformål. Java TreeMap implementerer NavigableMap-grensesnittet bortsett fra Map-grensesnittet, og utvider også klassen AbstractMap.
Q # 2) Hvorfor bruker vi TreeMap i Java?
hva er den beste programvaren for optimalisering av PC
Svar: TreeMap brukes i Java for implementering av Map- og NavigableMap-grensesnitt og AbstractMap-klasse. Siden TreeMap-tastene er sortert i henhold til den naturlige rekkefølgen, kan vi bruke denne datastrukturen til å lagre katalogstruktur, trehierarkier, etc.
Q # 3) Hva er bedre - HashMap eller TreeMap?
Svar: HashMap er bedre enn TreeMap. HashMap tar alltid konstant tid å utføre grunnleggende operasjoner mens TreeMap tar logg (n) tid å utføre disse operasjonene. Når større dataobjekter er involvert, fungerer HashMap raskere sammenlignet med TreeMap.
Q # 4) Er TreeMap sortert?
Svar: Ja, nøkkeloppføringene i TreeMap er sortert etter naturlig rekkefølge. TreeMap-klassen lar oss også bruke en tilpasset komparator til å sortere TreeMap basert på verdier.
Q # 5) Er TreeMap trådsikker?
Svar: Nei, TreeMap er ikke en trådsikker samling.
Konklusjon
I denne opplæringen diskuterte vi TreeMap i Java i detalj. TreeMap er en samling nøkkelverdipar som implementerer kartgrensesnitt. Den implementerer også et NavigableMap-grensesnitt. Elementene i TreeMap er unike, og ingen duplikater er tillatt.
Vi så konstruktørene og metodene til TreeMap. Vi implementerte også TreeMap-programmet og demonstrerte de viktigste metodene i TreeMap-klassen. Så diskuterte vi forskjellene mellom HashMap og TreeMap.
=> Besøk her for å se Java Training Series for alle.
Anbefalt lesing
- TreeSet I Java: Opplæring med programmeringseksempler
- Binært søketre i Java - Implementering og kodeeksempler
- JAVA-opplæring for nybegynnere: 100+ praktiske Java-videoveiledninger
- Java String inneholder () Metodeopplæring med eksempler
- Hva er Java Vector | Java Vector Class Tutorial med eksempler
- Jagged Array In Java - Opplæring med eksempler
- Java-skanner klasseveiledning med eksempler
- Java String Tutorial | Java strengmetoder med eksempler