Lühike sissejuhatus TreeMap-i Java-sse koos näidetega



See artikkel annab üksikasjalikud ja põhjalikud teadmised TreeMapist Java-s koos meetodite ja konstruktorite näidetega.

Kaardi liidese juurutamine Java-s on väga oluline ülesanne. Sel eesmärgil meil on Puu kaart ja HashMap . Selles artiklis keskendume TreeMapile aastal järgmises järjekorras:

Mis on Java kaardil TreeMap?

Kaardi liidese ja NavigableMap juurutamiseks koos abstraktse klassiga kasutatakse Java TreeMap-i. Kaart on sorteeritud vastavalt selle võtmete loomulikule järjestusele või kaardi loomise ajal antud komparaatori järgi, olenevalt sellest, millist konstruktorit kasutatakse. See osutub tõhusaks võtme-väärtuse paaride sorteerimise ja salvestamise viisiks.





TreeMap-in-JavaTreemapi säilitatav salvestusjärjestus peab olema võrdne võrdsega nagu iga teine ​​sorteeritud kaart, sõltumata selgetest võrdlusalustest. Treemapteostus ei ole sünkroonitud selles mõttes, et kui kaardile pääseb juurde mitme lõime kaudu ja vähemalt üks lõime muudab kaarti struktuurselt, tuleb see sünkroniseerida väliselt.

TreeMapsi omadused

  • See klass on Java kollektsiooni raamistiku liige.



  • Klass rakendab Map-liideseid, sealhulgas NavigableMap, SortedMap ja laiendab AbstractMap-i

    mis on java semafor
  • TreeMap Java-s ei võimalda nullvõtmeid (nagu Map) ja seega visatakse NullPointerException. Mitme nullväärtuse võib aga seostada erinevate võtmetega.

  • Kõik Map.Entry paarid, mis on selle klassi meetoditega tagastatud, ja selle vaated kujutavad hetktõmmiseid kaardistustest nende valmistamise ajal.



  • Nad ei toeta meetodit Entry.setValue.

Olulised punktid, mida meeles pidada

  1. Lisaks Mapi liidese rakendamisele rakendab Java TreeMap ka NavigableMap ja kaudselt SortedMap liidest. TreeMap laiendab ka AbstractMap klassi.

  2. TreeMapi kirjed sorteeritakse võtmete loomulikus järjekorras. See pakub ka konstruktorit, kes pakub tellimiseks kasutatavat Comparatorit. Nii et kui kasutate võtmena suvalist klassi, veenduge, et see rakendaks loomuliku tellimise jaoks liidest Comparable. Nende meetodite olulisuse mõistmiseks vaadake java kogude intervjuu küsimusi.

  3. Java TreeMapi juurutamine tagab garanteeritud log (n) ajakulu toimingutele saturKey, hankimise, paigutamise ja eemaldamise.

    kuidas jaros tostring töötab
  4. TreeMap ei ole sünkroonitud ega ole niidiohutu. Mitme keermega keskkondade jaoks saate pakitud sünkroonida meetodi Collections.synchronizedSortedMap abil.

  5. TreeMapi meetodid võtmekomplekti ja väärtuste saamiseks tagastavad Iteratori, mis on oma laadilt tõrkekindel, nii et kõik samaaegsed muudatused viskavad ConcurrentModificationExceptioni.

  6. Jaava TreeMap ei võimalda nullvõtmeid, kuid erinevate võtmetega võib olla seotud mitu nullväärtust.

Ehitajad TreeMapis

Ehitaja Kirjeldus
Puudukaart () Ehitab tühja treikaardi, mis sorteeritakse selle võtmete loomulikus järjekorras.
TreeMap (komparaatori kompakt) Ehitab tühja puupõhise kaardi, mis sorteeritakse Comparatori kompakti abil.
TreeMap (kaart m) Algatab puukaardi, kus on kirjad m-st, mis sorteeritakse võtmete loomulikus järjekorras.
TreeMap (SortedMap sm) Initsialiseerib kaardikaardi SortedMap sm kirjetega, mis sorteeritakse sm-ga samas järjekorras.

Meetodid TreeMapis

Meetod Kirjeldus
tühine selge () Eemaldab sellest TreeMapist kõik kaardistused.
Objektikloon () Tagastab selle TreeMapi eksemplari madala koopia.
Võrdleja võrdlus () Tagastab selle kaardi tellimiseks kasutatud võrdluse või null, kui see kaart kasutab võtmete loomulikku järjekorda.
tõeväärtus sisaldab võtit (objekti võti) Tagastab tõene, kui see kaart sisaldab määratud võtme vastendamist.
boolean containsValue (objekti väärtus) Tagastab tõene, kui see kaart kaardistab ühe või mitu võtit määratud väärtuseni.
Set entrySet () Tagastab selles kaardil olevate vastenduste seatud vaate.
Objekt firstKey () Tagastab selle järjestatud kaardi esimese (madalaima) võtme.
Objekti hankimine (objekti võti) Tagastab väärtuse, millele see kaart kaardistab määratud võtme.
SortedMap headMap (objekt võtmele) Tagastab selle kaardi osa vaate, mille võtmed on rangelt väiksemad kui toKey.
Määra keySet () Tagastab sellel kaardil olevate võtmete komplekti vaate.
Objekt lastKey () Tagastab selle järjestatud kaardi viimase (kõrgeima) võtme.
Objekti panemine (objekti võti, objekti väärtus) Seob määratud väärtuse sellel kaardil määratud võtmega.
void putAll (kaardi kaart) Kopeerib kõik kaardid määratud kaardilt sellele kaardile.
Objekti eemaldamine (objekti võti) Eemaldab selle võtme kaardistamise sellest TreeMapist, kui see on olemas.
int suurus () Tagastab selle kaardi võtmeväärtuste vastenduste arvu.
SortedMap subMap (objekt fromKey, Object toKey) Tagastab selle kaardi osa vaate, mille võtmed ulatuvad vahemikust Key, kaasa arvatud, kuni Key, ainult.
SortedMap tailMap (objekt fromKey) Tagastab selle kaardi osa vaate, mille võtmed on suuremad kui või võrdsed fromKey.
Kogu väärtused () Tagastab sellel kaardil sisalduvate väärtuste koguvaate.

Näide Java kaardil olevast TreeMapist

import java.util.TreeMap avalik klass TreeMapMain {public static void main (String args []) {// TreeMap, mille võtmeks on riik ja väärtuseks kapital on // TreeMap salvestab elemendid võtmete loomulikus järjekorras. TreeMap countryCapitalMap = uus TreeMap () countryCapitalMap.put ('India', 'Delhi') countryCapitalMap.put ('Jaapan,' Tokyo ') countryCapitalMap.put (' Prantsusmaa ',' Pariis ') countryCapitalMap.put (' Venemaa ') , 'Moskva') System.out.println ('-----------------------------') // TreeMapi kordamine, kasutades keySet ( ) ja iga tsükli jaoks System.out.println ('TreeMapi itereerimine, kasutades keySet () ja iga tsükli jaoks ') (String countryKey: countryCapitalMap.keySet ()) {System.out.println (' Riik: '+ countryKey +' ja pealinn: '+ countryCapitalMap.get (countryKey))} System.out.println (' ----------------------------- ' )}}

Väljund:

Sellega jõuame selle JavaMapis oleva TreeMapi lõpuni. C kurat välja Edureka, usaldusväärne veebiõppeettevõte, mille võrgustik hõlmab üle 250 000 rahuloleva õppija, levinud üle kogu maailma. Edureka Java J2EE ja SOA koolitus- ja sertifitseerimiskursus on mõeldud õpilastele ja spetsialistidele, kes soovivad olla Java arendajad. Kursus on loodud selleks, et anda teile Java programmeerimises edukas algus ja õpetada teid nii Java-põhiprogrammide kui ka edasijõudnute mõistete ning erinevate Java-raamistike, näiteks Hibernate & Spring, jaoks.

Kas teil on meile küsimus? Palun mainige seda selle blogi “TreeMap in Java” kommentaaride jaotises ja võtame teiega ühendust niipea kui võimalik.