Java TreeMap -tietorakenteen käyttäminen

Java TreeMap -tietorakenteen käyttäminen

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 avain-arvo-parit ja mahdollistaa CRUD-toimintojen suorittamisen näille tiedoille.





kuinka rajata kuva Macissa

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.





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

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.



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

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:





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

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 .





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

Yllä oleva koodi tulostaa seuraavan tulosteen konsoliin:

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

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.

miten tehdä suodatin snapchatille
// Replace existing value 
customers.replace(101,"Kim Smith");
System.out.println(customers);

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.

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

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.

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

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)).