A Java TreeMap adatstruktúra használata

A Java TreeMap adatstruktúra használata

A Java TreeMap osztály egy fastruktúrában tárolja az adatokat egy térképi felület segítségével. Ez az osztály kiterjeszti az AbstractMap osztályt, és a szülőosztályhoz hasonlóan a TreeMapnek is két típusparamétere van. Az egyik típusparaméter a TreeMap kulcsait, míg a másik az értékeket reprezentálja.





A TreeMap adatstruktúra kulcs-érték párokat tárol, és lehetővé teszi CRUD műveletek végrehajtását ezekkel az adatokkal.





Hogyan készítsünk TreeMap-et Java-ban

A TreeMap osztály négy konstruktorral rendelkezik, amelyek segítségével új TreeMap objektumot hozhat létre. Az alapértelmezett konstruktor a legnépszerűbb a négy közül. Ez a konstruktor nem vesz fel argumentumokat, és üres fatérképet hoz létre.





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

A fenti kód egy üres fatérképet generál, melynek neve vásárlók .

A TreeMap adatstruktúra feltöltése

Az tesz() metódus hozzáad egy elemet egy TreeMap objektumhoz. Két argumentum kell hozzá – egy kulcs és annak értéke. A fatérképhez tetszőleges sorrendben hozzáadhat elemeket, és az adatstruktúra növekvő sorrendben tárolja azokat, a kulcsaik szerint.



// 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");

A fenti kód öt ügyfelet ad véletlenszerű sorrendben az ügyfelek fatérképéhez.

hogyan lehet kijavítani a SIM -et nem biztosított mm 2

Elemek megtekintése a TreeMap-en

A TreeMap osztály az adatait egy objektumban tárolja. Tehát a fatérkép összes elemének megtekintéséhez egyszerűen kinyomtathatja a fatérkép objektumot a konzolra:





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

A fenti kód a következő kimenetet nyomtatja ki a konzolra:

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

Vegye figyelembe, hogy a fenti objektum az elemeket növekvő sorrendben jeleníti meg. Az egyes elemeket és a hozzájuk tartozó kulcsot is megtekintheti a használatával egy Java for ciklus .





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

A fenti kód a következő kimenetet nyomtatja ki a konzolra:

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

Elemek frissítése a TreeMapben

A TreeMap osztály lehetővé teszi egy meglévő elem frissítését a csere() módszer. Két csere módszer létezik. Az első módszer egy meglévő kulcsot és azt az új értéket vesz fel, amelyre a meglévő kulcsot le kívánja rendelni.

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

A fenti kód a következő objektumot nyomtatja ki a konzolban:

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

Amint látod Kim Brown most Kim Smith . A második helyettesítő() metódus egy meglévő kulcsot, a kulcs aktuális értékét és azt az új értéket vesz fel, amelyet hozzá szeretne rendelni a kulcshoz.

// Replace existing value 
customers.replace(103,"Jim Riley", "Michelle Noah");
System.out.println(customers);

A fenti kód a következő objektumot nyomtatja ki a konzolban:

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

A fenti objektumban Michelle Noah helyettesíti Jim Riley .

Elemek törlése a TreeMapről

Ha egyetlen elemet szeretne eltávolítani a fatérképről, a eltávolítás() módszer az egyetlen lehetőség. Elveszi az eltávolítani kívánt elemhez tartozó kulcsot, és visszaadja a törölt értéket.

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

A fenti kód futtatása a következő objektumot nyomtatja ki a konzolra:

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

Ez Java osztály is rendelkezik a egyértelmű() módszer, amely lehetővé teszi a fatérkép összes elemének törlését.

A TreeMap vs. a HashMap Java osztály

A TreeMap és a HashMap a két legnépszerűbb Java térképosztály. Mindkettő kiterjeszti az AbstractMap osztályt. Ez a kapcsolat hozzáférést biztosít a TreeMap és HashMap osztályoknak sok azonos funkcióhoz.

hogyan lehet eltávolítani a netflixen nemrég nézett

Van azonban néhány figyelemre méltó különbség e két térképosztály között. A TreeMap a térkép felület vörös-fekete fa megvalósítását használja, míg a HashMap hash táblát. A HashMap lehetővé teszi egyetlen null kulcs tárolását, míg a TreeMap nem. Végül a HashMap gyorsabb, mint a TreeMap. Az előbbi algoritmikus sebessége O(1), míg az utóbbié O(log(n)).