Atšķirība starp vārdnīcu un jaukto

Vārdnīca vs jaukā

Vārdnīca tiek drukāta (tik vērtīgiem tipiem nav nepieciešams pievienot rakstzīmes), jaucējzīmes nav (citiem vērtēšanas tipiem ir jāpalielina). Hashtable ir jaukāks veids, kā iegūt vērtību, nekā vārdnīca IMHО, jo tā vienmēr zina, ka vērtība ir objekts. Labi, ja jūs izmantojat .NET 3.5, ir viegli rakstīt paplašinātu metodi vārdnīcai, lai iegūtu līdzīgu rīcību.

Klase Hashtable ir noteikta veida vārdnīcu klase, kas izmanto vesela skaitļa vērtību (sauktu par hash), lai palīdzētu tās atslēgu glabāšanā. Klase Hashtable izmanto hash, lai paātrinātu meklēšanu pēc noteiktas atslēgas atlasītajā taustiņā. Katrs .NET objekts ir atkarīgs no objekta klases. Šī klase aizstāj GetHash metodi, kas atgriež skaitli, kas unikāli identificē objektu. Hashtable klase kopumā ir ļoti efektīva kolekcija. Vienīgais klases Hashtable jautājums ir tāds, ka tai ir nepieciešams mazliet virs galvas, un maziem atlasītajiem elementiem (mazāk nekā desmit elementiem) augšējā galviņa var kavēt veiktspēju..

Starp HashTable un vārdnīcu ir daudz vairāk atšķirību. Ja izmantojat indeksētājus, lai iegūtu vērtību no HashTable, HashTable sekmīgi atgriezīs nulli nevienam neeksistējošam vienumam, turpretī vārdnīca parādīs kļūdu, ja mēģināsit piekļūt vienumam, izmantojot indeksētāju, kura vārdnīcā vēl nav..

HashTable ir vāji drukāta pamatklase; DictionaryBase abstraktā klase ir strikti rakstīta un iekšēji izmanto HashTable.

Dīvaina lieta, kas pamanīta bez vārdnīcas, ir, ja vārdnīcai pievienojam vairākus ierakstus, tiek saglabāta kārtība, kurā tiek pievienoti ieraksti. Tādējādi, ja vārdnīcā izmantosit piekļuvi, jūs iegūsit ieteikumus tajā pašā rindā, kurā tos ievietojāt. Tā kā tas nav taisnība attiecībā uz parasto HashTable, ja pievienojat tos pašus ieteikumus Hashtable, kārtība netiek uzturēta. Ja 'Vārdnīca ir balstīta uz jahtas' taisnība, kāpēc vārdnīca uztur pēdējo, bet HashTable?

Kāpēc viņi uzvedas atšķirīgi, tas ir tāpēc, ka vispārējā vārdnīca ievieš jauktu, taču to nepamato System.Cоllectiоns.Hashtable. Vispārīgās vārdnīcas ieviešana ir balstīta uz visu veidu atslēgu un vērtību pāru apvienošanu no saraksta. Pēc tam tie tiek indeksēti ar nejaušas piekļuves kausiem, bet, atgriežot skaitli, tas vienkārši iet pa sarakstu secīgā secībā - kas būs nākamais ieliktnis, tiklīdz ieraksti netiks izmantoti atkārtoti..