Kézikönyv c #, osztály hash

Hash osztály célja, hogy hozzon létre egy gyűjtemény, amely egy hash táblázatban tárolja annak elemeit. Az információ tárolása a hash tábla használatával nevű mechanizmussal hasítás. Amikor tördeljük, hogy meghatározza egy egyedi értéket, az úgynevezett hash-kód információ tartalma használt speciális kulcsot. hash kód eredményeként kapott indexeként szolgál, amellyel a kívánt tárolt adatokat megfelelő táblázatban a megadott kulcs. Alakítsa át a kulcsot a hash kód automatikusan végrehajtott, és ezért a hash kód nem áll rendelkezésre, hogy az adott felhasználó részére. Az előnye, tördelő, hogy olyan állandó ideje teljesítő keresési műveleteket, visszakeresésére és a beállítási értékeket, függetlenül a nagyságát adatokat.

A hash osztály megvalósítja az interfészt IDictionary, ICollection, IEnumerable, ISerializable, IDeserializationCallback és ICloneable. A hash osztály által meghatározott számos tervező. Az alábbiakban a leggyakrabban használt konstruktőrök ebben az osztályban:

Az első forma alapértelmezés szerint létrejön létrehozott hash objektum osztály. A második forma által termelt az objektum típusát hash inicializált elemek a gyűjteményből d. A harmadik forma a létrehozott objektum típusú hash inicializálni, mivel a kapacitás a gyűjtemény, állítsa be a paramétereket kapacitását. És a negyedik formájában a létrehozott objektum típus hash inicializált adott, előre meghatározott és kapacitás-együttható töltés loadFactor. töltse tényező, más néven terhelési tényező. Meg kell lennie a tartományban a 0,1 és 1,0 közötti. Ez határozza meg a töltési fok a hash tábla növeljük méretét. Különösen, a táblázat expandált, ha az elemek száma nagyobb, mint a kapacitás a táblázatban, szorozva a kitöltési tényezőt. A tervezők, akik nem veszik a kitöltési tényező, mint a paraméter, az alapértelmezett aránya választjuk egyenlő 1,0.

A hash osztály határozza meg számos szabadalmazott módszer, amellett, hogy a már bejelentett interfészek, amelyek végrehajtják azt. Néhány a leggyakrabban használt módszer az ebbe az osztályba kerülnek felsorolásra. Különösen annak érdekében, hogy meghatározza, ha a kulcsot a hash gyűjtemény típusú tartalmaz, okozza ContainsKey () módszer. Annak meghatározásához, hogy tárolt gyűjteménye egy meghatározott érték okozza ContainsValue () módszer. Felsorolni a tartalmát egy gyűjtemény típusú hash használt módszer GetEnumerator (), amely visszaadja az objektum típusát IDictionaryEnumerator. Emlékezzünk vissza, hogy IDictionaryEnumerator - van egy számlálóra átviteléhez használt tartalmát a gyűjtemény, amely rendelkezik a pár „kulcs-érték.”

Ez visszaad egy logikai értéket true, ha a hívó típusú hash gyűjtemény tartalmaz egy kulcsot, és egy másik - egy logikai érték hamis

Ez visszaad egy logikai értéket true, ha a hívó fél hash gyűjtemény típusú értéket tartalmaz, és egyéb - Logikai érték false

Visszatér a hívó típusú hash gyűjtemény enumerátor típusú IDictionaryEnumerator

Visszaadja a gyűjtemény variáns típusú szinkronizált hash továbbított paraméterként

A hash osztályban kapható nyilvános tulajdonságokat meghatározott interfészek, amelyek végrehajtása benne. Egy különleges szerepe van a két tulajdonság, Kulcsok és értékek. mert lehet, hogy a kulcsok vagy értékek típusú hash gyűjtemény. Ezek a tulajdonságok határozzák meg a felület IDictionary következőképpen:

A hash osztály nem támogatja a megrendelt gyűjtemények, ezért kulcsok vagy értékek származnak a gyűjtemény bármilyen sorrendben. Ezen túlmenően, a hash osztályban van egy védett tulajdonság EqualityComparer. És a másik két tulajdonság, hep és összehasonlítóhoz, elavultnak tekinthető.

Nézzük felülvizsgálja egy példa:

Kapcsolódó cikkek