„Java TreeMap“ klasė saugo duomenis medžio struktūroje, naudodama žemėlapio sąsają. Ši klasė išplečia AbstractMap klasę ir, kaip ir pagrindinė klasė, TreeMap turi dviejų tipų parametrus. Vienas iš jo tipo parametrų žymi „TreeMap“ raktus, o kitas – reikšmes.

TreeMap duomenų struktūra saugo raktų ir reikšmių poras ir leidžia atlikti CRUD operacijas su šiais duomenimis.

Kaip sukurti medžio žemėlapį Java

TreeMap klasėje yra keturi konstruktoriai, kuriuos galite naudoti kurdami naują TreeMap objektą. Numatytasis konstruktorius yra populiariausias iš keturių. Šis konstruktorius nepriima argumentų ir sukuria tuščią medžio žemėlapį.

// Sukurkite naują medžio žemėlapį
TreeMap klientai = naujas TreeMap();

Aukščiau pateiktas kodas generuoja tuščią medžio žemėlapį, vadinamą klientų.

TreeMap duomenų struktūros užpildymas

The įdėti () metodas prideda elementą prie TreeMap objekto. Tam reikia dviejų argumentų – rakto ir jo vertės. Elementus į medžio žemėlapį galite įtraukti bet kokia atsitiktine tvarka, o duomenų struktūra juos išsaugos didėjančia tvarka pagal jų raktus.

instagram viewer
// Užpildykite medžio žemėlapį
customers.put(105, „Jessica Jones“);
customers.put(102, „Markas Viljamsas“);
customers.put(104, „Philas Blairas“);
customers.put(101, „Kim Brown“);
customers.put(103, „Jim Riley“);

Aukščiau pateiktas kodas prideda penkis klientus atsitiktine tvarka į klientų medžio žemėlapį.

Elementų peržiūra „TreeMap“.

TreeMap klasė savo duomenis saugo objekte. Taigi, norėdami pamatyti visus medžio žemėlapio elementus, galite tiesiog atspausdinti medžio žemėlapio objektą konsolėje:

// Peržiūrėti visus medžio žemėlapio elementus kaip objektą
System.out.println (klientai);

Aukščiau pateiktas kodas spausdina šią išvestį į konsolę:

{101 = Kimas Brownas, 102 = Markas Williamsas, 103 = Jimas Riley, 104 = Philas Blairas, 105 = Jessica Jones}

Atminkite, kad aukščiau esančiame objekte elementai rodomi didėjančia tvarka. Taip pat galite peržiūrėti kiekvieną elementą ir atitinkamą klavišą naudodami „Java for ciklus“..

// Peržiūrėkite visus elementus naudodami iteratorių
dėl (Įėjimas klientas: customers.entrySet()) {
System.out.println("Raktas: " + customer.getKey() + " Reikšmė: " + customer.getValue());
}

Aukščiau pateiktas kodas spausdina šią išvestį į konsolę:

Raktas: 101 Vertė: Kim Brown
Raktas: 102 Vertė: Markas Williamsas
Raktas: 103 Vertė: Jimas Riley
Raktas: 104 Vertė: Philas Blairas
Raktas: 105 Vertė: Jessica Jones

Elementų atnaujinimas „TreeMap“.

TreeMap klasė leidžia atnaujinti esamą elementą naudojant pakeisti () metodas. Yra du pakeitimo būdai. Pirmuoju metodu naudojamas esamas raktas ir nauja reikšmė, su kuria norite susieti esamą raktą.

// Pakeiskite esamą reikšmę
customers.replace(101„Kim Smith“);
System.out.println (klientai);

Aukščiau pateiktas kodas konsolėje atspausdina šį objektą:

{101 = Kimas Smithas, 102 = Markas Williamsas, 103 = Jimas Riley, 104 = Philas Blairas, 105 = Jessica Jones}

Kaip matai Kim Brown dabar Kimas Smitas. Antrasis pakeitimo() metodas paima esamą raktą, dabartinę rakto reikšmę ir naują reikšmę, kurią norite susieti su raktu.

// Pakeiskite esamą reikšmę
customers.replace(103„Jim Riley“, „Michelle Noah“);
System.out.println (klientai);

Aukščiau pateiktas kodas konsolėje atspausdina šį objektą:

{101=Kim Brown, 102=Markas Williamsas, 103=Michelle Noah, 104=Philas Blairas, 105=Jessica Jones}

Aukščiau esančiame objekte Michelle Noah pakeičia Jimas Riley.

Elementų ištrynimas iš medžio žemėlapio

Jei norite pašalinti vieną elementą iš medžio žemėlapio, pašalinti () metodas yra jūsų vienintelis pasirinkimas. Jis paima raktą, susietą su norimu pašalinti elementu, ir grąžina ištrintą reikšmę.

// Pašalinti elementą
customers.remove(104);
System.out.println (klientai);

Vykdant aukščiau pateiktą kodą konsolėje išspausdinamas šis objektas:

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

Tai Java klasė taip pat turi a aišku () metodas, leidžiantis ištrinti visus medžio žemėlapio elementus.

„TreeMap“ vs. HashMap Java klasė

„TreeMap“ ir „HashMap“ yra dvi populiariausios „Java“ žemėlapių klasės. Jie abu išplečia AbstractMap klasę. Šis ryšys suteikia TreeMap ir HashMap klasėms prieigą prie daugelio tų pačių funkcijų.

Tačiau tarp šių dviejų žemėlapių klasių yra keletas pastebimų skirtumų. „TreeMap“ naudoja „Red-Black“ žemėlapio sąsajos medžio įgyvendinimą, o „HashMap“ naudoja maišos lentelę. „HashMap“ leidžia išsaugoti vieną nulinį raktą, o „TreeMap“ – ne. Galiausiai, HashMap yra greitesnis nei TreeMap. Pirmojo algoritmo greitis yra O(1), o antrosios – O(log (n)).