Čo je Hashtable v C #?
Hašovacia tabuľka je špeciálna kolekcia, ktorá sa používa na ukladanie položiek kľúč - hodnota. Takže namiesto toho, aby sa do hashovacej tabuľky ukladala iba jedna hodnota, ako je zásobník, zoznam polí a fronta, ukladá sa do nej 2 hodnoty. Tieto 2 hodnoty tvoria prvok hashovacej tabuľky.
Ďalej uvádzame niekoľko príkladov, ako môžu vyzerať hodnoty hashovacej tabuľky.
{ "001" , ".Net" }{ "002" , ".C#" }{ "003" , "ASP.Net" }
Vyššie máme 3 páry dôležitých hodnôt. Kľúče každého prvku sú 001, 002 a 003. Hodnoty každého páru kľúč - hodnota sú „.Net“, „C #“ a „ASP.Net“.
Pozrime sa na operácie dostupné pre kolekciu Hashtable podrobnejšie.
Vyhlásenie Hashtable
Vyhlásenie o hašovacej tabuľke je uvedené nižšie. Hashtable sa vytvára pomocou dátového typu Hashtable. Kľúčové slovo „nové“ sa používa na vytvorenie objektu tabuľky Hashtable. Objekt je potom priradený k premennej ht.
Hashtable ht = new Hashtable()
Pridávanie prvkov do tabuľky Hashtable
Metóda Add sa používa na pridanie prvku do frontu. Všeobecná syntax príkazu je uvedená nižšie
HashTable.add("key","value")
Príklad 1:
Pamätajte, že každý prvok hashovacej tabuľky pozostáva z 2 hodnôt, jedna je kľúčom a druhá je hodnotou.
Teraz sa pozrime, ako to funguje na úrovni kódu. Všetky nižšie uvedené kódy budú zapísané do našej aplikácie Console.
Kód sa zapíše do nášho súboru Program.cs. V nižšie uvedenom programe napíšeme kód, aby sme zistili, ako môžeme vyššie uvedené metódy použiť.
V našom príklade sa teraz iba pozrieme na to, ako môžeme vytvoriť hashtable, pridať do neho prvky a podľa toho ich zobraziť.
using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DemoApplication{class Program{static void Main(string[] args){Hashtable ht = new Hashtable();ht.Add("001",".Net");ht.Add("002","C#");ht.Add("003","ASP.Net");ICollection keys = ht.Keys;foreach (String k in keys){Console.WriteLine(ht[k]);}Console.ReadKey();}}}
Vysvetlenie kódu: -
- Najskôr deklarujeme premennú hashtable pomocou dátového typu Hashtable pomocou kľúčového slova „Nové“. Názov definovanej premennej je „ht“.
- Potom pridáme prvky do hash tabuľky pomocou metódy Add. Pamätajte, že keď pridávame niečo do hashtable, musíme pridať kľúčový aj hodnotový prvok.
- Neexistuje žiadny priamy spôsob zobrazenia prvkov hašovacej tabuľky.
- Aby sme mohli zobraziť hashtable, musíme najskôr získať zoznam kľúčov (001, 002 a 003) z hašovacej tabuľky.
- To sa deje cez rozhranie ICollection. Toto je špeciálny dátový typ, ktorý možno použiť na uloženie kľúčov zbierok hashtable. Potom priradíme kľúče kolekcie hashtable k premennej 'keys'.
- Ďalej pre každú hodnotu kľúča získame priradenú hodnotu v hashtable pomocou príkazu ht [k].
Ak je vyššie uvedený kód zadaný správne a program je spustený, zobrazí sa nasledujúci výstup.
Výkon:
Pozrime sa na niektoré ďalšie metódy dostupné pre hašovacie tabuľky.
Obsahuje kľúč
Táto metóda sa používa na zistenie, či sa v hashtable nachádza kľúč. Ďalej uvádzame všeobecnú syntax tohto vyhlásenia. Príkaz vráti hodnotu true, ak kľúč existuje, inak vráti hodnotu false.
Hashtable.Containskey(key)
Obsahuje hodnotu
Táto metóda sa používa na zistenie, či je v hashovacej tabuľke hodnota. Ďalej uvádzame všeobecnú syntax tohto vyhlásenia. Príkaz vráti hodnotu true, ak hodnota existuje, inak vráti hodnotu false.
Hashtable.ContainsValue(value)
Príklad 2:
Zmeňme kód v našej konzolovej aplikácii, aby sme predviedli, ako môžeme používať metódu „Containskey“ a „ContainsValue“.
using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DemoApplication{class Program{static void Main(string[] args){Hashtable ht = new Hashtable();ht.Add("001",".Net");ht.Add("002","C#");ht.Add("003","ASP.Net");Console.WriteLine(ht.ContainsKey("001"));Console.WriteLine(ht.ContainsValue("C#"));Console.ReadKey();}}}
Vysvetlenie kódu: -
- Najskôr pomocou metódy ContainsKey zistíme, či je kľúč v hashtable. Táto metóda vráti hodnotu true, ak je kľúč v hashtable. Táto metóda by mala vrátiť hodnotu true, pretože kľúč existuje v hashtable.
- Potom pomocou metódy ContainsValue zistíme, či je hodnota v hashtable. Táto metóda vráti hodnotu „true“, pretože hodnota v hashtable existuje.
Ak je vyššie uvedený kód zadaný správne a program je spustený, zobrazí sa nasledujúci výstup.
Výkon:
Z výstupu jasne vidíte, že kľúč a hodnota, ktoré sa prehľadávajú, sú prítomné v hašovacej tabuľke.
Zhrnutie
- Hashtable sa používa na ukladanie prvkov, ktoré pozostávajú z párov kľúčových hodnôt. Ak chcete získať prístup k hodnote prvku, potrebujete poznať kľúč prvku.