Kā izmantot Java TreeMap datu struktūru

Kā izmantot Java TreeMap datu struktūru

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.





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

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

kā lasīt Mac cieto disku operētājsistēmā Windows

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.



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

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ē:





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

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

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

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





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

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

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

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.

// Replace existing value 
customers.replace(101,"Kim Smith");
System.out.println(customers);

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

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

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.

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

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

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

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.

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

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

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

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

kā atiestatīt administratora paroli operētājsistēmā Windows 10

TreeMap salīdzinājumā ar HashMap Java klasi

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