Java TreeMap -luokka tallentaa tiedot puurakenteeseen karttarajapinnan avulla. Tämä luokka laajentaa AbstractMap-luokkaa ja, kuten sen yläluokka, TreeMapilla on kaksi tyyppiparametria. Yksi sen tyyppiparametreista edustaa TreeMapin avaimia, kun taas toinen edustaa arvoja.

TreeMap-tietorakenne tallentaa avainarvoparit ja mahdollistaa CRUD-toimintojen suorittamisen näille tiedoille.

Kuinka luoda TreeMap Javassa

TreeMap-luokassa on neljä konstruktoria, joiden avulla voit luoda uuden TreeMap-objektin. Oletuskonstruktori on suosituin neljästä. Tämä rakentaja ei ota argumentteja ja luo tyhjän puukartan.

// Luo uusi puukartta
TreeMap asiakkaat = Uusi TreeMap();

Yllä oleva koodi luo tyhjän puukartan nimeltä Asiakkaat.

TreeMap-tietorakenteen täyttäminen

The laittaa() menetelmä lisää kohteen TreeMap-objektiin. Se vaatii kaksi argumenttia – avaimen ja sen arvon. Voit lisätä kohteita puukarttaan missä tahansa satunnaisessa järjestyksessä ja tietorakenne tallentaa ne nousevassa järjestyksessä avaimien mukaan.

instagram viewer
// Täytä puukartta
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");

Yllä oleva koodi lisää viisi asiakasta satunnaisessa järjestyksessä asiakkaiden puukarttaan.

Kohteiden katseleminen TreeMapissa

TreeMap-luokka tallentaa tietonsa objektiin. Joten nähdäksesi kaikki puukartan kohteet, voit yksinkertaisesti tulostaa puukarttaobjektin konsoliin:

// Näytä kaikki puukartan kohteet objektina
System.out.println (asiakkaat);

Yllä oleva koodi tulostaa seuraavan tulosteen konsoliin:

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

Huomaa, että yllä oleva objekti näyttää kohteet nousevassa järjestyksessä. Voit myös tarkastella jokaista kohdetta ja sitä vastaavaa näppäintä käyttämällä Java for loop.

// Näytä kaikki kohteet iteraattorilla
varten (Sisäänpääsy asiakas: customers.entrySet()) {
System.out.println("Avain: " + asiakas.getKey() + " Arvo: " + asiakas.getValue());
}

Yllä oleva koodi tulostaa seuraavan tulosteen konsoliin:

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

Kohteiden päivittäminen TreeMapissa

TreeMap-luokan avulla voit päivittää olemassa olevan kohteen käyttämällä korvata() menetelmä. Korvausmenetelmiä on kaksi. Ensimmäinen menetelmä ottaa olemassa olevan avaimen ja uuden arvon, johon haluat yhdistää olemassa olevan avaimen.

// Korvaa olemassa oleva arvo
customers.replace(101"Kim Smith");
System.out.println (asiakkaat);

Yllä oleva koodi tulostaa seuraavan objektin konsoliin:

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

Kuten näet Kim Brown on nyt Kim Smith. Toinen korvaa()-menetelmä ottaa olemassa olevan avaimen, avaimen nykyisen arvon ja uuden arvon, jonka haluat yhdistää avaimeen.

// Korvaa olemassa oleva arvo
customers.replace(103"Jim Riley", "Michelle Noah");
System.out.println (asiakkaat);

Yllä oleva koodi tulostaa seuraavan objektin konsoliin:

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

Yllä olevassa objektissa Michelle Noah korvaa Jim Riley.

Kohteiden poistaminen TreeMapista

Jos haluat poistaa yhden kohteen puukartasta, Poista() menetelmä on ainoa vaihtoehto. Se ottaa poistettavaan kohteeseen liittyvän avaimen ja palauttaa poistetun arvon.

// Poista kohde
customers.remove(104);
System.out.println (asiakkaat);

Yllä olevan koodin suorittaminen tulostaa seuraavan objektin konsoliin:

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

Tämä Java luokka on myös a asia selvä() menetelmä, jonka avulla voit poistaa kaikki kohteet puukartalta.

TreeMap vs. HashMap Java -luokka

TreeMap ja HashMap ovat kaksi suositumpaa Java-karttaluokkaa. Molemmat laajentavat AbstractMap-luokkaa. Tämä suhde antaa TreeMap- ja HashMap-luokille pääsyn moniin samoihin toimintoihin.

Näiden kahden karttaluokan välillä on kuitenkin joitain huomionarvoisia eroja. TreeMap käyttää Map-käyttöliittymän punamusta-puutoteutusta, kun taas HashMap käyttää hash-taulukkoa. HashMap antaa sinun tallentaa yhden tyhjäavaimen, kun taas TreeMap ei. Lopuksi HashMap on nopeampi kuin TreeMap. Ensimmäisen algoritminopeus on O(1), kun taas jälkimmäisen on O(log (n)).