Java TreeMap klase datus saglabā koka struktūrā, izmantojot kartes interfeisu. Šī klase paplašina AbstractMap klasi, un, tāpat kā tās vecākklasei, TreeMap ir divu veidu parametri. Viens no tā tipa parametriem apzīmē atslēgas TreeMap, bet otrs apzīmē vērtības.

TreeMap datu struktūra saglabā atslēgu un vērtību pārus un ļauj veikt CRUD darbības ar šiem datiem.

Kā izveidot koka karti Java

TreeMap klasei ir četri konstruktori, kurus varat izmantot, lai izveidotu jaunu TreeMap objektu. Noklusējuma konstruktors ir vispopulārākais no četriem. Šis konstruktors neizmanto argumentus un ģenerē tukšu koka karti.

// Izveidojiet jaunu koka karti
TreeMap klienti = jauns TreeMap();

Iepriekš minētais kods ģenerē tukšu koka karti ar nosaukumu klientiem.

TreeMap datu struktūras aizpildīšana

The likt () metode pievieno vienumu TreeMap objektam. Tam nepieciešami divi argumenti — atslēga un tās vērtība. Jūs varat pievienot vienumus koka kartei jebkurā nejaušā secībā, un datu struktūra tos saglabās augošā secībā atbilstoši to atslēgām.

instagram viewer
// Aizpildiet koku karti
customers.put(105, "Džesika Džounsa");
customers.put(102, "Marks Viljamss");
customers.put(104, "Fils Blērs");
customers.put(101, "Kima Brauna");
customers.put(103, "Džims Railijs");

Iepriekš minētais kods pievieno piecus klientus nejaušā secībā klientu koka kartei.

Vienumu skatīšana TreeMap

TreeMap klase savus datus saglabā objektā. Tātad, lai redzētu visus vienumus koka kartē, varat vienkārši izdrukāt koka kartes objektu konsolē:

// Skatīt visus koka kartes vienumus kā objektu
System.out.println (klienti);

Iepriekš minētais kods konsolē izdrukā šādu izvadi:

{101=Kima Brauns, 102=Marks Viljamss, 103=Džims Railijs, 104=Fils Blērs, 105=Džesika Džounsa}

Ņemiet vērā, ka iepriekš esošais objekts parāda vienumus augošā secībā. Varat arī apskatīt katru vienumu un tam atbilstošo taustiņu, izmantojot Java cilpai.

// Skatīt visus vienumus, izmantojot iteratoru
priekš (Ieeja klients: customers.entrySet()) {
System.out.println("Atslēga: " + customer.getKey() + " Vērtība: " + customer.getValue());
}

Iepriekš minētais kods konsolē izdrukā šādu izvadi:

Atslēga: 101 Vērtība: Kima Brauna
Atslēga: 102 Vērtība: Marks Viljamss
Atslēga: 103 Vērtība: Džims Railijs
Atslēga: 104 Vērtība: Fils Blērs
Atslēga: 105 Vērtība: Džesika Džounsa

Vienumu atjaunināšana TreeMap

TreeMap klase ļauj atjaunināt esošu vienumu, izmantojot aizvietot() metodi. Ir divas aizstāšanas metodes. Pirmā metode izmanto esošu atslēgu un jauno vērtību, ar kuru vēlaties kartēt esošo atslēgu.

// Aizstāt esošo vērtību
customers.replace(101"Kima Smita");
System.out.println (klienti);

Iepriekš minētais kods konsolē drukā šādu objektu:

{101=Kima Smits, 102=Marks Viljamss, 103=Džims Railijs, 104=Fils Blērs, 105=Džesika Džounsa}

Kā tu redzi Kims Brauns ir tagad Kims Smits. Otrā aizvietošanas () metode izmanto esošu atslēgu, atslēgas pašreizējo vērtību un jauno vērtību, kuru vēlaties kartēt ar atslēgu.

// Aizstāt esošo vērtību
customers.replace(103"Džims Railijs", "Mišela Noa");
System.out.println (klienti);

Iepriekš minētais kods konsolē drukā šādu objektu:

{101=Kima Brauna, 102=Marks Viljamss, 103=Mišela Noa, 104=Fils Blērs, 105=Džesika Džounsa}

Iepriekš esošajā objektā Mišela Noa aizstāj Džims Railijs.

Vienumu dzēšana no TreeMap

Ja vēlaties noņemt vienu vienumu no koka kartes, noņemt () metode ir jūsu vienīgā iespēja. Tas paņem atslēgu, kas saistīta ar vienumu, kuru vēlaties noņemt, un atgriež dzēsto vērtību.

// Noņemt vienumu
customers.remove(104);
System.out.println (klienti);

Palaižot iepriekš minēto kodu, konsolē tiek drukāts šāds objekts:

{101=Kima Smita, 102=Marks Viljamss, 103=Mišela Noa, 105=Džesika Džounsa}

Šis Java klase ir arī a skaidrs () metode, kas ļauj izdzēst visus vienumus koka kartē.

TreeMap vs. HashMap Java klase

TreeMap un HashMap ir divas no populārākajām Java karšu klasēm. Viņi abi paplašina AbstractMap klasi. Šīs attiecības nodrošina TreeMap un HashMap klasēm piekļuvi daudzām tām pašām funkcijām.

Tomēr starp šīm divām karšu klasēm ir dažas ievērojamas atšķirības. TreeMap izmanto kartes interfeisa sarkanmelnā koka ieviešanu, savukārt HashMap izmanto jaucējtabulu. HashMap ļauj saglabāt vienu nulles atslēgu, savukārt TreeMap to nedara. Visbeidzot, HashMap ir ātrāks nekā TreeMap. Pirmā algoritma ātrums ir O(1), bet otrā ir O(log (n)).