Java TreeMap klass salvestab andmed puustruktuuri kasutades kaardiliidest. See klass laiendab klassi AbstractMap ja sarnaselt emaklassile on TreeMapil kahte tüüpi parameetrit. Üks selle tüübiparameetritest tähistab TreeMapi võtmeid, teine aga väärtusi.
TreeMapi andmestruktuur salvestab võtme-väärtuse paarid ja võimaldab teil nende andmetega teha CRUD-operatsioone.
Kuidas Javas TreeMapi luua
TreeMap klassis on neli konstruktorit, mille abil saate luua uue TreeMap objekti. Vaikekonstruktor on neist neljast kõige populaarsem. See konstruktor ei võta argumente ja loob tühja puukaardi.
// Looge uus puukaart
TreeMap kliendid = uus TreeMap();
Ülaltoodud kood genereerib tühja puukaardi nimega klientidele.
TreeMapi andmestruktuuri täitmine
The pane() meetod lisab TreeMapi objektile üksuse. Selleks on vaja kahte argumenti – võtit ja selle väärtust. Saate puukaardile üksusi lisada mis tahes juhuslikus järjekorras ja andmestruktuur salvestab need kasvavas järjekorras vastavalt nende võtmetele.
// Puukaardi asustus
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");
Ülaltoodud kood lisab viis klienti juhuslikus järjekorras klientide puukaardile.
Üksuste vaatamine TreeMapis
TreeMap klass salvestab oma andmed objektis. Seega, et näha kõiki puukaardil olevaid üksusi, saate lihtsalt puukaardi objekti konsooli printida:
// Vaata kõiki puukaardi üksusi objektina
System.out.println (kliendid);
Ülaltoodud kood prindib konsooli järgmise väljundi:
{101=Kim Brown, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}
Pange tähele, et ülaltoodud objekt kuvab üksused kasvavas järjekorras. Samuti saate iga üksust ja sellele vastavat klahvi vaadata kasutades Java for loop.
// Kõigi üksuste kuvamine iteraatoriga
jaoks (Sisenemine klient: customers.entrySet()) {
System.out.println("Võti: " + klient.getKey() + " Väärtus: " + customer.getValue());
}
Ülaltoodud kood prindib konsooli järgmise väljundi:
Võti: 101 Väärtus: Kim Brown
Võti: 102 Väärtus: Mark Williams
Võti: 103 Väärtus: Jim Riley
Võti: 104 Väärtus: Phil Blair
Võti: 105 Väärtus: Jessica Jones
TreeMapi üksuste värskendamine
TreeMap klass võimaldab värskendada olemasolevat üksust kasutades asenda () meetod. On kaks asendusmeetodit. Esimene meetod võtab olemasoleva võtme ja uue väärtuse, millega soovite olemasoleva võtme vastendada.
// Asenda olemasolev väärtus
customers.replace(101"Kim Smith");
System.out.println (kliendid);
Ülaltoodud kood prindib konsoolis järgmise objekti:
{101=Kim Smith, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}
Nagu sa näed Kim Brown on praegu Kim Smith. Teine asendamismeetod () võtab olemasoleva võtme, võtme praeguse väärtuse ja uue väärtuse, mille soovite võtmega vastendada.
// Asenda olemasolev väärtus
customers.replace(103"Jim Riley", "Michelle Noah");
System.out.println (kliendid);
Ülaltoodud kood prindib konsoolis järgmise objekti:
{101=Kim Brown, 102=Mark Williams, 103=Michelle Noah, 104=Phil Blair, 105=Jessica Jones}
Ülaltoodud objektil Michelle Noa asendab Jim Riley.
Üksuste kustutamine TreeMapist
Kui soovite puukaardilt eemaldada ühe üksuse, eemalda () meetod on teie ainus võimalus. See võtab eemaldatava üksusega seotud võtme ja tagastab kustutatud väärtuse.
// Eemaldage üksus
customers.remove(104);
System.out.println (kliendid);
Ülaltoodud koodi käivitamine prindib konsooli järgmise objekti:
{101=Kim Smith, 102=Mark Williams, 103=Michelle Noah, 105=Jessica Jones}
See Java klass on ka a selge () meetod, mis võimaldab kustutada kõik puukaardil olevad üksused.
TreeMap vs. HashMap Java klass
TreeMap ja HashMap on kaks populaarsemat Java kaardiklassi. Mõlemad laiendavad AbstractMap klassi. See suhe annab TreeMapi ja HashMapi klassidele juurdepääsu paljudele samadele funktsioonidele.
Siiski on nende kahe kaardiklassi vahel mõned märkimisväärsed erinevused. TreeMap kasutab kaardiliidese puna-must puurakendust, samas kui HashMap kasutab räsitabelit. HashMap võimaldab salvestada ühe nullvõtme, TreeMap aga mitte. Lõpuks on HashMap kiirem kui TreeMap. Esimese algoritmi kiirus on O(1), teise oma aga O(log (n)).