Atšķirība starp HashMap un TreeMap Java

Autors: Laura McKinney
Radīšanas Datums: 2 Aprīlis 2021
Atjaunināšanas Datums: 14 Maijs 2024
Anonim
Atšķirība starp HashMap un TreeMap Java - Tehnoloģija
Atšķirība starp HashMap un TreeMap Java - Tehnoloģija

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.

  1. Salīdzināšanas tabula
  2. Definīcija
  3. Galvenās atšķirības
  4. Secinājums

Salīdzināšanas tabula

Salīdzināšanas pamatsHashMapKoku karte
Pamata HashMap neuztur ievietošanas secību.TreeMap uztur ievietošanas kārtību.
Datu struktūraHashMap 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.
PerformanceHashMap 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 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 sm)

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.

  1. Abas klases tiek izmantotas, lai izveidotu kartes objektus, taču galvenā atšķirība starp HashMap un Treemap ir tāda, ka HashMap neuztur ievietošanas kārtību, turpretī Treemap.
  2. Datu struktūra, kuru Hashmap izmanto kartes elementu glabāšanai, ir hash tabula, un TreeMap izmantotā datu struktūra, lai saglabātu kartes elementus, ir sarkan-melns koks.
  3. Gan klases Hashmap, gan Treemap paplašina AbstractMap klasi, bet HashMap klase ievieš kartes saskarni un TreeMap realizē NavigableMap un SortedMap saskarni.
  4. Vērtības var būt Null jebkura laika abās daļās, bet HashMap atslēgā ir atļauts būt Null tikai vienu reizi, un atslēga nekad nevar būt Treemap.
  5. HashMap veiktspēja ir ātrāka. Tas netērē laiku kartes elementu kārtošanai, kā to dara TreeMap. Tādējādi TreeMap darbojas lēnāk nekā HashMap.

Secinājums:

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.