Java TreeMap-klassen lagrer data i en trestruktur ved hjelp av et kartgrensesnitt. Denne klassen utvider AbstractMap-klassen, og i likhet med sin overordnede klasse har TreeMap to typeparametere. En av typeparameterne representerer nøklene i TreeMap, mens den andre representerer verdiene.
TreeMap-datastrukturen lagrer nøkkelverdi-par og lar deg utføre CRUD-operasjoner på disse dataene.
Hvordan lage et trekart i Java
TreeMap-klassen har fire konstruktører som du kan bruke til å lage et nytt TreeMap-objekt. Standardkonstruktøren er den mest populære av de fire. Denne konstruktøren tar ingen argumenter og genererer et tomt trekart.
// Lag et nytt trekart
Trekart kunder = ny Trekart();
Koden ovenfor genererer et tomt trekart kalt kunder.
Fylle TreeMap-datastrukturen
De sette() metoden legger til et element til et TreeMap-objekt. Det krever to argumenter – en nøkkel og dens verdi. Du kan legge til elementer til trekartet i hvilken som helst tilfeldig rekkefølge, og datastrukturen vil lagre dem i stigende rekkefølge, i henhold til nøklene deres.
// Fyll ut et trekart
kunder.put(105, "Jessica Jones");
kunder.put(102, "Mark Williams");
kunder.put(104, "Phil Blair");
kunder.put(101, "Kim Brown");
kunder.put(103, "Jim Riley");
Koden ovenfor legger til fem kunder, i tilfeldig rekkefølge, til kundenes trekart.
Vise elementer i et trekart
TreeMap-klassen lagrer dataene sine i et objekt. Så for å se alle elementene i et trekart kan du ganske enkelt skrive ut trekartobjektet til konsollen:
// Vis alle trekartelementer som et objekt
System.out.println (kunder);
Koden ovenfor skriver ut følgende utdata til konsollen:
{101=Kim Brown, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}
Merk at objektet ovenfor viser elementene i stigende rekkefølge. Du kan også se hvert element og tilhørende nøkkel ved å bruke en Java for loop.
// Vis alle elementer med en iterator
til (Inngang kunde: customers.entrySet()) {
System.out.println("Nøkkel: " + kunde.getKey() + " Verdi: " + kunde.getValue());
}
Koden ovenfor skriver ut følgende utdata til konsollen:
Nøkkel: 101 Verdi: Kim Brown
Nøkkel: 102 Verdi: Mark Williams
Nøkkel: 103 Verdi: Jim Riley
Nøkkel: 104 Verdi: Phil Blair
Nøkkel: 105 Verdi: Jessica Jones
Oppdatere elementer i et trekart
TreeMap-klassen lar deg oppdatere et eksisterende element ved å bruke erstatte() metode. Det er to erstatningsmetoder. Den første metoden tar en eksisterende nøkkel og den nye verdien du vil tilordne den eksisterende nøkkelen til.
// Erstatt eksisterende verdi
kunder.erstatt(101"Kim Smith");
System.out.println (kunder);
Koden ovenfor skriver ut følgende objekt i konsollen:
{101=Kim Smith, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}
Som du kan se Kim Brown er nå Kim Smith. Den andre erstatte()-metoden tar en eksisterende nøkkel, nøkkelens nåværende verdi og den nye verdien du vil tilordne til nøkkelen.
// Erstatt eksisterende verdi
kunder.erstatt(103"Jim Riley", "Michelle Noah");
System.out.println (kunder);
Koden ovenfor skriver ut følgende objekt i konsollen:
{101=Kim Brown, 102=Mark Williams, 103=Michelle Noah, 104=Phil Blair, 105=Jessica Jones}
I objektet ovenfor Michelle Noah erstatter Jim Riley.
Slette elementer fra trekartet
Hvis du vil fjerne et enkelt element fra trekartet, kan du fjerne() metoden er ditt eneste alternativ. Den tar nøkkelen knyttet til elementet du vil fjerne og returnerer den slettede verdien.
// Fjern et element
kunder.fjern(104);
System.out.println (kunder);
Ved å kjøre koden ovenfor skrives følgende objekt ut til konsollen:
{101=Kim Smith, 102=Mark Williams, 103=Michelle Noah, 105=Jessica Jones}
Dette Java klasse har også en klar() metode som lar deg slette alle elementene i trekartet.
TreeMap vs. HashMap Java Class
TreeMap og HashMap er to av de mer populære Java-kartklassene. De utvider begge AbstractMap-klassen. Dette forholdet gir TreeMap- og HashMap-klassene tilgang til mange av de samme funksjonene.
Imidlertid er det noen bemerkelsesverdige forskjeller mellom disse to kartklassene. TreeMap bruker en rød-svart treimplementering av kartgrensesnittet, mens HashMap bruker en hashtabell. HashMap lar deg lagre en enkelt nullnøkkel, mens TreeMap ikke gjør det. Til slutt, et HashMap er raskere enn et TreeMap. Førstnevntes algoritmiske hastighet er O(1) mens sistnevntes er O(log (n)).