treemap java tutorial with java treemap examples
Denne Java TreeMap-vejledning diskuterer TreeMap-klasse, Iteration, TreeMap-eksempler, Implementering, Java Hashmap vs Treemap, TreeMap API-metoder osv .:
En TreeMap-datastruktur er en samling, der gemmer nøgleværdipar i en naturligt sorteret rækkefølge. Et TreeMap er en del af Java Collections Framework og er en kortimplementering.
=> Tjek ALLE Java-tutorials her.
Hvad du lærer:
Java TreeMap
Nogle af de vigtigste egenskaber ved TreeMap i Java er som følger:
- TreeMap-klassen, der implementerer treemap i Java, er en del af java.util-pakken. Det implementerer kortgrænsefladen.
- TreeMap-klassen udvider klassen AbstractMap og implementerer også grænsefladen NavigableMap og SortedMap (indirekte).
- TreeMap er ikke synkroniseret.
- Som standard er TreeMap-elementer i stigende rækkefølge som standard.
- TreeMap tillader ikke duplikatelementer.
- TreeMap tillader null-værdier, men ikke null-nøgler.
Diagrammet nedenfor viser klassehierarkiet for TreeMap-klassen.
Som allerede nævnt implementerer TreeMap-klassen en NavigableMap-grænseflade, der igen udvider SortedMap-klassen. SortedMap arver yderligere kortgrænsefladen.
Erklæring om TreeMap-klasse
Den generelle erklæring for TreeMap-klassen er angivet nedenfor:
public class TreeMap extends AbstractMap implements NavigableMap, Cloneable, Serializable
hvor K => type nøgler vedligeholdt af TreeMap
V => type af de kortlagte værdier
TreeMap-eksempel
Nedenstående program viser et simpelt 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('}'); } }
Produktion:
Indholdet af TreeMap:
{100 = Pune 101 = Hyderabad 102 = Jaipur 103 = Bangaluru}
I dette program har vi defineret et simpelt TreeMap-objekt ved navn, towns_map, og ved hjælp af put-metoden har vi initialiseret det til nøgleværdipar.
Derefter bruger vi entrySet () -metoden i TreeMap-klassen og gentager dette sæt ved hjælp af en forEach-løkke til at udskrive nøgleværdiparene. Til udskrivning af nøgleværdipar bruger vi henholdsvis getKey () og getValue () -metoder.
Spørgsmål og svar om kvalitetsanalytiker pdf
TreeMap API Metoder og konstruktører
I dette afsnit vil vi diskutere de forskellige konstruktører og metoder, der leveres af klassen TreeMap.
Konstruktører
Konstruktør prototype | Beskrivelse | |
---|---|---|
faldende kort | NavigableMap descendingMap () | Returnerer givne nøgleværdipar i omvendt rækkefølge. |
TreeMap () | Standardkonstruktør til at oprette en tom TreeMap med naturlig rækkefølge. | |
TreeMap (Comparator Comparator) | Konstruerer et tomt TreeMap, der sorteres ud fra den angivne komparator. | |
TreeMap (kort m) | Konstruerer et TreeMap og initialiserede det med elementerne på det angivne kort, m. Bestilling er naturlig. | |
TreeMap (SortedMap m) | Konstruerer en TreeMap og initialiseres med SortedMap-poster. Bestilling er den samme som sortedMap. |
Metoder
Metode | Metode Prototype | Beskrivelse |
---|---|---|
loftEntry | Map.Entry loftEntry (K-tast) | Returnerer det mindste nøgleværdipar, således at nøglen er større end eller lig med den angivne nøgle; null, hvis der ikke er nogen nøgle |
loftnøgle | K loftKey (K-tast) | Returnerer den nøgle, der er mindst og større end den givne nøgle; returnerer null, hvis der ikke er nogen nøgle. |
klar | ugyldigt klart () | Sletter alle nøgleværdipar fra Treemap. |
klon | Objektklon () | Opretter en lav kopi af TreeMap-forekomsten. |
komparator | Komparator komparator () | Returnerer en komparator, der bruges til at arrangere tasterne. null, hvis bestilling er naturlig |
descendingKeySet | NavigableSet descendingKeySet () | Returnerer NavigableSet visning af TreeMap-tasterne i omvendt rækkefølge. |
første indgang | Map.Entry firstEntry () | Returnerer det mindste nøgleværdipar. |
floorEntry | Map.Entry floorEntry (K-tast) | Returnerer den største nøgle, der er mindre end eller lig med en given nøgle; null hvis ingen sådan nøgle |
for hver | ugyldig for hver (BiConsumer-handling) | Den givne handling udføres for hver post i TreeMap. |
headMap | SortedMap headMap (K toKey) | Bruges til at returnere et nøgleværdipar, således at den returnerede nøgle er strengt mindre end toKey |
headMap | NavigableMap headMap (K toKey, inklusive boolsk) | Returnerer nøgleværdipar af de nøgler, der er mindre end toKey eller lig med hvis inklusive. |
højere indgang | Map.Entry higherEntry (K-tast) | Returnerer den mindste nøgle eller null. Den returnerede nøgle er strengt større end den givne nøgle. |
højere nøgle | K højereKey (K-tast) | Returnerer nøglen, hvis kortlægningen er til stede for den givne nøgle i Treemap. |
keySet | Indstil nøgleSæt () | Returnerer den indstillede samling af nøglerne i TreeMap. |
lastEntry | Map.Entry lastEntry () | Returnerer nøgleværdipar, således at nøglen er den største nøgle. Returnerer nul, hvis nøglen ikke findes. |
lavere indgang | Map.Entry lowerEntry (K-tast) | Returnerer nøgleværdiparet, så nøglen er størst og strengt mindre end den givne nøgle. Returnerer nul, hvis nøglen ikke findes. |
lavere nøgle | K lavere tast (K-tast) | Returnerer den største nøgle eller null. Den returnerede nøgle er strengt mindre end den givne nøgle. |
navigableKeySet | NavigableSet navigableKeySet () | Returnerer 'NavigableSet' af taster i TreeMap. |
pollFirstEntry | Map.Entry pollFirstEntry () | Fjerner og returnerer derefter den mindste nøgles nøgleværdipar. |
pollLastEntry | Map.Entry pollLastEntry () | Fjerner og returnerer den største nøgles nøgleværdipar. |
sætte | V put (K-tast, V-værdi) | Føjer den givne nøgle og værdi til TreeMap. |
sæt alt | void putAll (Kortkort) | Alle nøgleværdipar fra det givne kort kopieres til TreeMap. |
erstatte | V erstat (K-tast, V-værdi) | Erstatter eller ændrer værdien på den givne nøgle med den givne værdi. |
erstatte | boolsk erstatning (K-tast, V oldValue, V newValue) | Erstatter oldValue af den givne nøgle med newValue. |
udskift alle | ugyldig erstatte alle (BiFunction-funktion) | Påkalder den givne funktion og erstatter alle poster med resultatet af funktionen. |
underkort | NavigableMap subMap (K fromKey, boolean fromInclusive, K toKey, boolean toInclusive) | Returnerer nøgleværdiparerne af nøgler fra 'fromKey' til 'toKey'. |
SortedMap | SortedMap subMap (K fromKey, K toKey) | Returnerer nøgleværdipar for området fra Key (inklusive) til Key (eksklusiv). |
hale kort | SortedMap tailMap (K fromKey) | Returnerer nøgleværdipar, således at tasterne er større end eller lig med fromKey. |
hale kort | NavigableMap tailMap (K fromKey, inklusive boolsk) | Returnerer nøgleværdipar for nøglerne, der er lig med fromKey (inklusive = true) eller større end fromKey. |
indeholderKey | boolean containKey (Objektnøgle) | Kontrollerer, om der er en kortlægning af den givne nøgle i Treemap. Returnerer sandt, hvis ja. |
indeholder værdi | boolean containValue (objektværdi) | Kontrollerer, om der er en nøgle, der er kortlagt med den givne værdi. Returnerer ja, hvis det er sandt. |
firstKey | K firstKey () | Returnerer den laveste eller den første tast i det sorterede kort |
få | V get (Objektnøgle) | Henter den værdi, der er tilknyttet den givne nøgle |
lastKey | K lastKey () | Returnerer den sidste eller den højeste nøgle på det sorterede kort. |
fjerne | V fjern (Objektnøgle) | Sletter nøgleværdipar for den givne nøgle i TreeMap |
entrySet | Sæt | Returnerer sættet for det givne TreeMap. |
størrelse | int størrelse () | Returnerer størrelse eller det samlede antal nøgleværdipar i TreeMap. |
værdier | Samlingsværdier () | Returnerer samling af værdierne for TreeMap. |
Iterering gennem TreeMap
TreeMap består af nøgleværdipar. TreeMap-klassen giver en metode 'entrySet', der returnerer nøgleværdipar på kortet. Vi kan gentage disse poster ved hjælp af forEach-sløjfe og displaytaster og værdier ved hjælp af henholdsvis getKey () og getValue () -metoder.
Dette vises i nedenstående Java-program:
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() + ')'); } }
Produktion:
Indholdet af TreeMap:
(B => Blå)
(G => Grøn)
(M => Magenta)
(R => Rød)
TreeMap-implementering i Java
Følgende Java-program demonstrerer hovedmetoden i TreeMap-klassen, der er diskuteret 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); } }
Produktion:
Oprindeligt kort: {1 = 1, 2 = 4, 3 = 9, 4 = 16, 5 = 25, 6 = 36, 7 = 49, 8 = 64, 9 = 81, 10 = 100}
Nærmeste lavere indgang end 4: 3 = 9
Nærmeste højere post end 4: 5 = 25
Nærmeste nederste nøgle end 4: 3
Nærmeste gulvindgang end 6: 6 = 36
Nærmeste loft Indgang end 6: 6 = 36
TreeMap Første indgang: 1 = 1
TreeMap Sidste post: 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 indgang: 1 = 1
TreeMap Sidste post: 10 = 100
Underkort 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 efter værdi
Som standard sorteres TreeMap ud fra tasterne i henhold til naturlig rækkefølge. Men hvis vi vil sortere TreeMap efter værdierne, skal vi bruge komparatoren til at definere sorteringen.
Nedenstående Java-program sorterer TreeMap efter værdi.
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()); } } }
Produktion:
Det sorterede TreeMap baseret på værdier:
B: Blå
C: Cyan
G: Grøn
M: Magenta
R: Rød
Java Hashmap vs Treemap
Lad os se nogle af de største forskelle mellem en HashMap og TreeMap.
Nedenstående tabel viser disse forskelle.
gratis backup-program til Windows 7
HashMap | TreeMap |
---|---|
HashMap er meget hurtigere end TreeMap. | TreeMap er langsommere |
Implementerer kortgrænsefladen. | Implementerer NavigableMap interface. |
Bruger hashing implementeringsteknik | Brug et rød-sort træ til implementering |
Bevarer ikke nogen rækkefølge med indhold af elementer | Tasterne i trækortet er allerede bestilt i henhold til naturlig bestilling |
Tillader en nul-nøgle og mange nulværdier | Tillader kun nulværdier, men nøgler kan ikke være nul |
Udfører grundlæggende operationer, sæt og kom i konstant tid. | Tag log (n) tid til at udføre put og get operationer |
HashMap har begrænset funktionalitet. | TreeMap-klassen giver masser af ekstra funktionalitet, der hjælper os med at manipulere datastrukturen. |
Bruger lig () metode til sammenligning. | Bruger sammenligningsmetoden () til sammenligning. |
Ofte stillede spørgsmål
Q # 1) Hvad er TreeMap i Java?
Svar: TreeMap i Java er en samling af nøgleværdipar, der allerede er sorteret. Det bruger et rød-sort træ til implementeringsformål. Java TreeMap implementerer NavigableMap-grænsefladen bortset fra Map-grænsefladen og udvider også klassen AbstractMap.
Q # 2) Hvorfor bruger vi TreeMap i Java?
Svar: TreeMap bruges i Java til implementering af Map- og NavigableMap-grænseflader og AbstractMap-klasse. Da TreeMap-nøglerne er sorteret efter den naturlige rækkefølge, kan vi bruge denne datastruktur til lagring af katalogstruktur, træhierarkier osv.
Q # 3) Hvilket er bedre - HashMap eller TreeMap?
Svar: HashMap er bedre end TreeMap. HashMap tager altid konstant tid at udføre grundlæggende operationer, mens TreeMap tager log (n) tid at udføre disse operationer. Når større dataobjekter er involveret, fungerer HashMap hurtigere sammenlignet med TreeMap.
Q # 4) Er TreeMap sorteret?
Svar: Ja, nøgleposterne i TreeMap sorteres efter naturlig rækkefølge. TreeMap-klassen giver os også mulighed for at bruge en brugerdefineret komparator til at sortere TreeMap baseret på værdier.
Q # 5) Er TreeMap trådsikker?
Svar: Nej, TreeMap er ikke en trådsikker samling.
Konklusion
I denne vejledning diskuterede vi TreeMap i Java detaljeret. TreeMap er en samling nøgleværdipar, der implementerer kortgrænseflade. Det implementerer også en NavigableMap-grænseflade. Elementerne i TreeMap er unikke, og ingen duplikater er tilladt.
Vi så konstruktørerne og metoderne til TreeMap. Vi implementerede også TreeMap-programmet og demonstrerede de vigtigste metoder i TreeMap-klassen. Derefter diskuterede vi forskellene mellem HashMap og TreeMap.
=> Besøg her for at se Java Training Series for alle.
Anbefalet læsning
- TreeSet I Java: Vejledning med programmeringseksempler
- Binært søgetræ i Java - Implementering og kodeeksempler
- JAVA-vejledning til begyndere: 100+ praktiske Java-videovejledninger
- Java String indeholder () Metodevejledning med eksempler
- Hvad er Java Vector | Java Vector Class Tutorial med eksempler
- Jagged Array In Java - Vejledning med eksempler
- Java Scanner-klassevejledning med eksempler
- Java String Tutorial | Java strengmetoder med eksempler