Atšķirība starp HashMap un TreeMap Java
Saturs
HashMap un TreeMap ir kartes klases, un abas tās īsteno kartes saskarni. Karte ir objekts, kurā tiek glabāti atslēgu un vērtību pāri, kur katra atslēga ir unikāla un var būt arī dublētās vērtības. HashMap klase kā datu struktūru izmanto hash tabulu. TreeMap kā sarkanu un melnu koku izmanto kā datu struktūru. Galvenā atšķirība starp HashMap un Treemap ir tā, ka HashMap nesaglabā ievietošanas kārtību, tā kā Koku karte dara.
Tāpēc sāksim diskusiju par atšķirībām starp HashMap un TreeMap, izmantojot zemāk parādīto salīdzināšanas tabulu.
- Salīdzināšanas tabula
- Definīcija
- Galvenās atšķirības
- Secinājums
Salīdzināšanas tabula
Salīdzināšanas pamats | HashMap | Koku karte |
---|---|---|
Pamata | HashMap neuztur ievietošanas secību. | TreeMap uztur ievietošanas kārtību. |
Datu struktūra | HashMap kā pamata datu struktūru izmanto Hash Table. | TreeMap kā pamata datu struktūru izmanto sarkanmelnu koku. |
Null taustiņi un vērtības | HashMap ļauj Null taustiņu vienreiz reklāmas Null vērtību jebkuru laika periodu. | TreeMap neatļauj nulles atslēgu, bet ļauj nulles vērtībām neierobežotu laika periodu. |
Pagarina un ievieš | HashMap paplašina AbstractMap klasi un ievieš kartes saskarni. | TreeMap paplašina AbstractMap klasi un ievieš interfeisu SortedMap un NavigableMap. |
Performance | HashMap darbojas ātrāk. | TreeMap salīdzinājumā ar HashMap darbojas lēnāk. |
HashMap definīcija
HashMap ir Map klase. Tas izmanto hash tabula, kā datu struktūru karšu atslēgu vērtību pāra saglabāšanai. Atslēgas vērtību pāra ievietošana tiek veikta, izmantojot hash kods no taustiņi. Tādējādi katram kartes taustiņam jābūt unikālam, jo to izmantos vērtību iegūšanai.
Ievietošanas secība vietnē HashMap ir nē saglabāts, kas nozīmē, ka hashmap objekts neatdod elementus atpakaļ tādā secībā, kādā tie tika ievietoti. No otras puses, elementu atgriešanas secība nav noteikta.
atslēga ir atļauts būt NULL uzreiz, bet vērtības var būt NULL jebkurā laikā. HashMap var saturēt neviendabīga objekti taustiņiem, kā arī vērtības.
Ir četri HashMap konstruktori:
HashMap () HashMap (kartes m) HashMap (int ietilpība), HashMap (int ietilpība, float fillRatio)
vispirms konstruktors izveido tukšu HashMap objektu. otrais konstruktors inicializē HashMap, izmantojot Map m elementus. trešais konstruktors inicializē HashMap ar argumentā norādīto ietilpību. ceturtais konstruktors inicializē HashMap objekta ietilpību, kā arī piepildījuma attiecību.
Noklusējuma ietilpība no HashMap ir 16un noklusējuma piepildījuma attiecība no HashMap ir 0.75.
TreeMap definīcija
Tāpat kā HashMap, Koku karte ir arī Map klase. TreeMap paplašina AbstractMap klase un piederumi NavigabelMap un SortedMap. Objekti TreeMap saglabā kartes elementus koka struktūrā. Kartes glabāšanai izmantotā datu struktūra ir Sarkani-melns koks.
TreeMap saglabā atslēgu vērtību pāri sakārtotā secībā, kas palīdz ātri izgūt elementus. Objekts TreeMap atgriež elementus sakārtots (augoši) pasūtījums.
Ir četri TreeMap konstruktori:
TreeMap () TreeMap (salīdzinātājs <? Super K> comp) TreeMap (karte <? Paplašina K,? Paplašina V> m) TreeMap (SortedMap vispirms konstruktori izveido tukšu TreeMap objektu, kas tiek sakārtots dabiskā secībā, tā atslēgas. otrais konstruktors izveidos tukšu koku karti, kuru sakārtos Salīdzināšanas cmp. trešais konstruktors iepriekš izveidos koku karti, kas tiks inicializēta, izmantojot Karte m. ceturtais konstruktors izveidos koku karti, kas tiks inicializēta, izmantojot SortedMap sm. Koku kartei nav savas jaunas metodes, tā izmanto interfeisu NavigableMap un SortedMap saskarnes un AbstractMap klases metodi. TreeMap jāizmanto tikai tad, ja jums ir nepieciešama atslēgu vērtību pāris sakārtotā formā. Tā kā šķirošana ietver izpildes izmaksas. HashMap nesinhronizācija darbojas ātrāk.
Secinājums: