De Java TreeMap-klasse is een rood-zwarte boomgebaseerde implementatie. Het biedt een efficiënte manier om sleutel-waardeparen in gesorteerde volgorde op te slaan.
De belangrijke punten over de Java TreeMap-klasse zijn:
- Java TreeMap bevat waarden op basis van de sleutel. Het implementeert de NavigableMap-interface en breidt de AbstractMap-klasse uit.
- Java TreeMap bevat alleen unieke elementen.
- Java TreeMap kan geen nulsleutel hebben, maar kan meerdere nulwaarden hebben.
- Java TreeMap is niet gesynchroniseerd.
- Java TreeMap handhaaft een oplopende volgorde.
TreeMap-klassedeclaratie
Laten we de declaratie voor de klasse java.util.TreeMap bekijken.
verwijder het eerste teken excel
public class TreeMap extends AbstractMap implements NavigableMap, Cloneable, Serializable
Parameters van de TreeMap-klasse
Laten we de parameters voor de klasse java.util.TreeMap bekijken.
Constructeurs van de Java TreeMap-klasse
Constructeur | Beschrijving |
---|---|
Boomkaart() | Het wordt gebruikt om een lege boomkaart te construeren die zal worden gesorteerd met behulp van de natuurlijke volgorde van de sleutel. |
TreeMap (vergelijkervergelijker) | Het wordt gebruikt om een lege boomgebaseerde kaart te construeren die zal worden gesorteerd met behulp van de comparatorcomp. |
Boomkaart(Kaart m) | Het wordt gebruikt om een boomkaart te initialiseren met de gegevens uit M , die wordt gesorteerd volgens de natuurlijke volgorde van de sleutels. |
Boomkaart(gesorteerde kaart m) | Het wordt gebruikt om een boomkaart te initialiseren met de gegevens uit de SortedMap sm , die in dezelfde volgorde wordt gesorteerd als sm. |
Methoden van de Java TreeMap-klasse
Methode | Beschrijving |
---|---|
Kaart.InvoerplafondInvoer(K-toets) | Het retourneert het sleutelwaardepaar met de kleinste sleutel, groter dan of gelijk aan de opgegeven sleutel, of nul als een dergelijke sleutel niet bestaat. |
K plafondsleutel(K-sleutel) | Het retourneert de kleinste sleutel, groter dan de opgegeven sleutel of null als een dergelijke sleutel niet bestaat. |
leegte helder() | Het verwijdert alle sleutel-waardeparen van een kaart. |
Objectkloon() | Het retourneert een ondiepe kopie van de TreeMap-instantie. |
Vergelijkervergelijker() | Het retourneert de comparator die de sleutel in volgorde rangschikt, of null als de kaart de natuurlijke volgorde gebruikt. |
NavigableSet aflopendKeySet() | Het retourneert een NavigableSet-weergave in omgekeerde volgorde van de sleutels op de kaart. |
Navigeerbare kaart aflopende kaart () | Het retourneert de opgegeven sleutel-waardeparen in aflopende volgorde. |
Map.Entry firstEntry() | Het retourneert het sleutelwaardepaar met de minste sleutel. |
Map.Entry floorEntry(K-sleutel) | Het retourneert de grootste sleutel, kleiner dan of gelijk aan de opgegeven sleutel, of nul als een dergelijke sleutel niet bestaat. |
void forEach(BiConsumer-actie) | Het voert de gegeven actie uit voor elk item op de kaart totdat alle items zijn verwerkt of de actie een uitzondering genereert. |
SortedMap headMap(K naarToets) | Het retourneert de sleutelwaardeparen waarvan de sleutels strikt kleiner zijn dan toKey. |
Navigeerbare kaart headMap (K toKey, inclusief Boolean) | Het retourneert de sleutelwaardeparen waarvan de sleutels kleiner zijn dan (of gelijk aan als inclusief waar is) toKey. |
Map.Entry hogereEntry(K-sleutel) | Het retourneert de kleinste sleutel die strikt groter is dan de gegeven sleutel, of nul als een dergelijke sleutel niet bestaat. |
K hogere sleutel(K-sleutel) | Het wordt gebruikt om waar te retourneren als deze kaart een toewijzing voor de opgegeven sleutel bevat. |
Stel sleutelSet() in | Het retourneert de verzameling sleutels die op de kaart aanwezig is. |
Map.Entry lastEntry() | Het retourneert het sleutel-waardepaar met de grootste sleutel, of nul als zo'n sleutel niet bestaat. |
Map.Entry lowerEntry(K-sleutel) | Het retourneert een sleutel-waarde-toewijzing die is gekoppeld aan de grootste sleutel die strikt kleiner is dan de gegeven sleutel, of nul als een dergelijke sleutel niet bestaat. |
K lagere sleutel(K-sleutel) | Het retourneert de grootste sleutel die strikt kleiner is dan de gegeven sleutel, of nul als zo'n sleutel niet bestaat. |
NavigeerbareSet navigeerbareKeySet() | Het retourneert een NavigableSet-weergave van de sleutels op deze kaart. |
Map.Entry pollFirstEntry() | Het verwijdert en retourneert een sleutel/waarde-toewijzing die is gekoppeld aan de minste sleutel in deze kaart, of null als de kaart leeg is. |
Map.Entry pollLastEntry() | Het verwijdert en retourneert een sleutel/waarde-toewijzing die is gekoppeld aan de grootste sleutel in deze kaart, of null als de kaart leeg is. |
V put(K-sleutel, V-waarde) | Het voegt de opgegeven waarde met de opgegeven sleutel in de kaart in. |
void putAll (kaartkaart) | Het wordt gebruikt om het hele sleutel-waardepaar van de ene kaart naar de andere kaart te kopiëren. |
V vervangen (K-sleutel, V-waarde) | Het vervangt de opgegeven waarde voor een opgegeven sleutel. |
boolean vervangen(K sleutel, V oudeWaarde, V nieuweWaarde) | Het vervangt de oude waarde door de nieuwe waarde voor een opgegeven sleutel. |
void ReplaceAll(BiFunction-functie) | Het vervangt de waarde van elk item door het resultaat van het aanroepen van de gegeven functie voor dat item totdat alle items zijn verwerkt of de functie een uitzondering genereert. |
Navigeerbare kaart-subkaart (K fromKey, boolean fromInclusive, K toKey, boolean toInclusive) | Het retourneert sleutel-waardeparen waarvan de sleutels variëren van fromKey tot toKey. |
SortedMap-subkaart (K fromKey, K toKey) | Het retourneert sleutel-waardeparen waarvan de sleutels variëren van fromKey, inclusief, tot toKey, exclusief. |
Gesorteerde kaart staartkaart (K van sleutel) | Het retourneert sleutel-waardeparen waarvan de sleutels groter zijn dan of gelijk zijn aan fromKey. |
Navigeerbare kaart staartkaart (K fromKey, inclusief Boolean) | Het retourneert sleutel-waardeparen waarvan de sleutels groter zijn dan (of gelijk aan, als inclusief waar is) fromKey. |
boolean containKey(Objectsleutel) | Het retourneert waar als de kaart een toewijzing voor de opgegeven sleutel bevat. |
booleaanse waarde bevatWaarde(Objectwaarde) | Het retourneert waar als de kaart een of meer sleutels toewijst aan de opgegeven waarde. |
K eersteSleutel() | Het wordt gebruikt om de eerste (laagste) sleutel te retourneren die momenteel in deze gesorteerde kaart aanwezig is. |
V get(Objectsleutel) | Het wordt gebruikt om de waarde te retourneren waaraan de kaart de opgegeven sleutel toewijst. |
K laatsteSleutel() | Het wordt gebruikt om de laatste (hoogste) sleutel terug te geven die momenteel in de gesorteerde kaart staat. |
V verwijderen (Objecttoets) | Het verwijdert het sleutelwaardepaar van de opgegeven sleutel van de kaart. |
Set | Het retourneert een vaste weergave van de toewijzingen op de kaart. |
int-grootte() | Het retourneert het aantal sleutelwaardeparen dat in de hashtabel bestaat. |
Verzamelingswaarden() | Het retourneert een verzamelingsweergave van de waarden op de kaart. |
Java TreeMap-voorbeeld
import java.util.*; class TreeMap1{ public static void main(String args[]){ TreeMap map=new TreeMap(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); for(Map.Entry m:map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } }
Output:100 Amit 101 Vijay 102 Ravi 103 Rahul
Java TreeMap-voorbeeld: remove()
import java.util.*; public class TreeMap2 { public static void main(String args[]) { TreeMap map=new TreeMap(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); System.out.println('Before invoking remove() method'); for(Map.Entry m:map.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } map.remove(102); System.out.println('After invoking remove() method'); for(Map.Entry m:map.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } } }
Uitgang:
java doe het even
Before invoking remove() method 100 Amit 101 Vijay 102 Ravi 103 Rahul After invoking remove() method 100 Amit 101 Vijay 103 Rahul
Java TreeMap-voorbeeld: NavigableMap
import java.util.*; class TreeMap3{ public static void main(String args[]){ NavigableMap map=new TreeMap(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); //Maintains descending order System.out.println('descendingMap: '+map.descendingMap()); //Returns key-value pairs whose keys are less than or equal to the specified key. System.out.println('headMap: '+map.headMap(102,true)); //Returns key-value pairs whose keys are greater than or equal to the specified key. System.out.println('tailMap: '+map.tailMap(102,true)); //Returns key-value pairs exists in between the specified key. System.out.println('subMap: '+map.subMap(100, false, 102, true)); } }
descendingMap: {103=Rahul, 102=Ravi, 101=Vijay, 100=Amit} headMap: {100=Amit, 101=Vijay, 102=Ravi} tailMap: {102=Ravi, 103=Rahul} subMap: {101=Vijay, 102=Ravi}
Java TreeMap-voorbeeld: SortedMap
import java.util.*; class TreeMap4{ public static void main(String args[]){ SortedMap map=new TreeMap(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); //Returns key-value pairs whose keys are less than the specified key. System.out.println('headMap: '+map.headMap(102)); //Returns key-value pairs whose keys are greater than or equal to the specified key. System.out.println('tailMap: '+map.tailMap(102)); //Returns key-value pairs exists in between the specified key. System.out.println('subMap: '+map.subMap(100, 102)); } }
headMap: {100=Amit, 101=Vijay} tailMap: {102=Ravi, 103=Rahul} subMap: {100=Amit, 101=Vijay}
Wat is het verschil tussen HashMap en TreeMap?
Hash kaart | Boomkaart |
---|---|
1) HashMap kan één nulsleutel bevatten. | TreeMap kan geen nulsleutel bevatten. |
2) HashMap onderhoudt geen bestelling. | TreeMap handhaaft een oplopende volgorde. |
Java TreeMap Voorbeeld: Boek
import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class MapExample { public static void main(String[] args) { //Creating map of Books Map map=new TreeMap(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to map map.put(2,b2); map.put(1,b1); map.put(3,b3); //Traversing map for(Map.Entry entry:map.entrySet()){ int key=entry.getKey(); Book b=entry.getValue(); System.out.println(key+' Details:'); System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } }
Uitgang:
1 Details: 101 Let us C Yashwant Kanetkar BPB 8 2 Details: 102 Data Communications & Networking Forouzan Mc Graw Hill 4 3 Details: 103 Operating System Galvin Wiley 6