Sådan bruges Java TreeMap-datastrukturen

Sådan bruges Java TreeMap-datastrukturen

Java TreeMap-klassen gemmer data i en træstruktur ved hjælp af en kortgrænseflade. Denne klasse udvider AbstractMap-klassen, og ligesom dens overordnede klasse har TreeMap to typeparametre. En af dens typeparametre repræsenterer nøglerne i TreeMap, mens den anden repræsenterer værdierne.





TreeMap-datastrukturen gemmer nøgleværdi-par og giver dig mulighed for at udføre CRUD-operationer på disse data.





Sådan opretter du et trækort i Java

TreeMap-klassen har fire konstruktører, som du kan bruge til at oprette et nyt TreeMap-objekt. Standardkonstruktøren er den mest populære af de fire. Denne konstruktør tager ingen argumenter og genererer et tomt trækort.





// Create a new tree map 
TreeMap<Integer,String> customers = new TreeMap<Integer,String>();

Koden ovenfor genererer et tomt trækort kaldet kunder .

Udfyldelse af TreeMap-datastrukturen

Det sætte() metode tilføjer et element til et TreeMap-objekt. Det kræver to argumenter - en nøgle og dens værdi. Du kan tilføje elementer til trækortet i en hvilken som helst tilfældig rækkefølge, og datastrukturen gemmer dem i stigende rækkefølge i henhold til deres nøgler.



// Populate a tree map 
customers.put(105, "Jessica Jones");
customers.put(102, "Mark Williams");
customers.put(104, "Phil Blair");
customers.put(101, "Kim Brown");
customers.put(103, "Jim Riley");

Ovenstående kode tilføjer fem kunder i tilfældig rækkefølge til kundetrækortet.

app for at se, hvem der blokerede dig på facebook

Visning af elementer i et trækort

TreeMap-klassen gemmer sine data i et objekt. Så for at se alle elementerne i et trækort kan du blot udskrive trækortobjektet til konsollen:





// View all tree map items as an object 
System.out.println(customers);

Koden ovenfor udskriver følgende output til konsollen:

{101=Kim Brown, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}

Bemærk, at objektet ovenfor viser elementerne i stigende rækkefølge. Du kan også se hvert element og dets tilsvarende nøgle ved hjælp af en Java for loop .





// View all items with an iterator 
for (Entry<Integer, String> customer : customers.entrySet()) {
System.out.println("Key: " + customer.getKey() + " Value: " + customer.getValue());
}

Koden ovenfor udskriver følgende output til konsollen:

Key: 101 Value: Kim Brown 
Key: 102 Value: Mark Williams
Key: 103 Value: Jim Riley
Key: 104 Value: Phil Blair
Key: 105 Value: Jessica Jones

Opdatering af elementer i et trækort

TreeMap-klassen giver dig mulighed for at opdatere et eksisterende element ved hjælp af erstatte() metode. Der er to udskiftningsmetoder. Den første metode tager en eksisterende nøgle og den nye værdi, du vil tilknytte den eksisterende nøgle til.

// Replace existing value 
customers.replace(101,"Kim Smith");
System.out.println(customers);

Koden ovenfor udskriver følgende objekt i konsollen:

e -mails, der ikke kommer igennem på tablet
{101=Kim Smith, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}

Som du kan se Kim Brown er nu Kim Smith . Den anden erstatning()-metode tager en eksisterende nøgle, nøglens aktuelle værdi og den nye værdi, du vil knytte til nøglen.

er ps3 -spil kompatible med ps4
// Replace existing value 
customers.replace(103,"Jim Riley", "Michelle Noah");
System.out.println(customers);

Koden ovenfor udskriver 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 .

Sletning af elementer fra trækortet

Hvis du vil fjerne et enkelt element fra trækortet, fjerne() metode er din eneste mulighed. Den tager nøglen, der er knyttet til det element, du vil fjerne, og returnerer den slettede værdi.

// Remove an item 
customers.remove(104);
System.out.println(customers);

Ved at køre koden ovenfor udskrives følgende objekt til konsollen:

{101=Kim Smith, 102=Mark Williams, 103=Michelle Noah, 105=Jessica Jones}

Dette Java klasse har også en klar() metode, der giver dig mulighed for at slette alle elementer i trækortet.

TreeMap vs. HashMap Java-klassen

TreeMap og HashMap er to af de mere populære Java-kortklasser. De udvider begge AbstractMap-klassen. Dette forhold giver TreeMap- og HashMap-klasserne adgang til mange af de samme funktioner.

Der er dog nogle bemærkelsesværdige forskelle mellem disse to kortklasser. TreeMap bruger en rød-sort træimplementering af kortgrænsefladen, mens HashMap bruger en hash-tabel. HashMap giver dig mulighed for at gemme en enkelt null-nøgle, mens TreeMap ikke gør det. Endelig er et HashMap hurtigere end et TreeMap. Førstnævntes algoritmiske hastighed er O(1), mens sidstnævntes er O(log(n)).