ჰეშ-ცხრილები

ჰეშ-ცხრილები ინახავენ   წყვილებს-გასაღები-მნიშვნელობა,ანუ    ჰეშ-ცხრილის თითოეული ელემენტი შედგება გასაღებისა და მნიშვნელობისაგან. გასაღები გამოიყენება შესაბამისი მნიშვნელობის მისაღებად. ჰეშ-ცხრილები განსაზღვრულია Hashtable კლასში. ამ კლასის თვისებები და მეთოდები მოყვანილია ცხრილებში 14.3 და 14.4. ჰეშ-ცხრილში გასაღები და მნიშვნელობა შეიძლება იყოს ნებისმიერი ტიპის ობიექტი. თუმცა, ჩვეულებრივ, გასაღების როლში ხშირად სტრიქონებს იყენებენ.

Hashtable კლასის თვისებები

თვისებები ტიპი აღწერა
Count int შეიცავს ჰეშ-ცხრილში შენახული ელემენტების რაოდენობას
IsFixedSize bool ამოწმებს აქვს თუ არა ჰეშ-ცხრილს ფიქსირებული სიგრძე
IsReadOnly bool ამოწმებს არის თუ არა ჰეს-ცხრილი მხოლოდ წაკითხვადი
Item object გასცემს ან აყენებს მითითებული გასაღების მქონე ელემენტის მნიშვნელობას
Keys ICollection გასცემს კოლექციას, რომელიც ჰეშ-ცხრილის გასაღებებისაგან შედგება
Values ICollection გასცემს კოლექციას, რომელიც ჰეშ-ცხრილის მნიშვნელობებისაგან შედგება

 

ელემენტების დამატება, წაშლა  და მიღება. Add() მეთოდი გამოიყენება ჰეშ-ცხრილში ელემენტების დასამატებლად. მისი სინტაქსია: Hashtable.Add(გასაღები, მნიშვნელობა)  Remove() მეთოდი გამოიყენება ჰეშ-ცხრილში ელემენტების წასაშლელად. მისი სინტაქსია: Hashtable.Remove(გასაღები)  მოყვანილ პროგრამაში ხდება ამ მეთოდებთან მუშაობის დემონსტრირება.

Hashtable კლასის მეთოდები

მეთოდები დაბრუნებული ტიპი აღწერა
Add() void ჰეშ-ცხრილს უმატებს მითითებული გასაღებისა და მნიშვნელობის მქონე ელემენტს
Clear() void ჰეშ-ცხრილიდან შლის ყველა ელემენტს
Clone() object ქმნის ჰეშ-ცხრილის ასლს
Contains() bool განსაზღვრავს, შეიცავს თუ არა ჰეშ-ცხრილი მითითებულ გასაღებს
ContainsKey() bool განსაზღვრავს, შეიცავს თუ არა ჰეშ-ცხრილი მითითებულ გასაღებს
ContainsValue() bool განსაზღვრავს, შეიცავს თუ არა ჰეშ-ცხრილი მითითებულ მნიშვნელობას
CopyTo() void ერთგანზომილებიან მასივში ჰეშ-ცხრილიდან გადაწერს გასაღებებს ან მნიშვნელობებს
Equals() bool ამოწმებს, ტოლია თუ არა ორი ჰეშ-ცხრილი
GetEnumerator() IEnumerator გასცემს ჩამომთვლელს, რომელიც გამოიყენება ჰეშცხრილის ელემენტებთან სამუშაოდ
GetType() Type გასცემს მიმდინარე ობიექტის ტიპს
Remove() void ჰეშ-ცხრილიდან შლის მითითებული გასაღების  მქონე ელემენტს
ToString() string გასცემს მიმდინარე ობიექტის შესაბამის სტრიქონს

 

{

//

//          პროგრამაში ხდება Add() და Remove() მეთოდებთან მუშაობის დემონსტრირება

Hashtable HeshCxrili = new Hashtable();

//

HeshCxrili.Add(“კა”, “კახეთი”);
HeshCxrili.Add(“იმ”, “იმერეთი”);
HeshCxrili.Add(“თუ”, “თუშეთი”);
HeshCxrili.Add(“ხე”, “ხევსურეთი”);
foreach ( string Gasagebi in HeshCxrili.Keys )    
label1.Text += Gasagebi.ToString() + ‘\n’;
foreach ( string Mnishvneloba in HeshCxrili.Values )    
label1.Text += Mnishvneloba.ToString() + ‘\n’;

//

HeshCxrili.Remove(“თუ”);

foreach ( string Gasagebi in HeshCxrili.Keys )     label2.Text += Gasagebi.ToString() + ‘\n’; foreach ( string Mnishvneloba in HeshCxrili.Values )     label2.Text += Mnishvneloba.ToString() + ‘\n’; string Regioni = (string)HeshCxrili[“იმ”]; label3.Text = Regioni;

}

როგორც პროგრამიდან ჩანს, ჰეშ-ცხრილიდან საჭირო მნიშვნელობის მისაღებად კვადრატულ ფრჩხილებში უნდა მივუთითოთ მისი შესაბამისი გასაღები, მაგალითად, HeshCxrili[“იმ”].             გასაღებების    მისაღებად      უნდა   გამოვიყენოთ Keys     თვისება,         ხოლო მნიშვნელობების მისაღებად კი – Values თვისება.

გასაღებისა და მნიშვნელობის ძებნა. ContainsKey() მეთოდი გამოიყენება ჰეშ-ცხრილში მითითებული            გასაღების       მოსაძებნად.    პოვნის            შემთხვევაში   გაიცემა           true,             წინააღმდეგ შემთხვევაში – false. მისი სინტაქსია:

Hashtable.ContainsKey(გასაღები)

ContainsValue() მეთოდი გამოიყენება ჰეშ-ცხრილში მითითებული მნიშვნელობის მოსაძებნად. პოვნის შემთხვევაში გაიცემა true, წინააღმდეგ შემთხვევაში – false. მისი სინტაქსია: Hashtable.ContainsValue(მნიშვნელობა)

 { მოყვანილ პროგრამაში ხდება ამ მეთოდებთან მუშაობის დემონსტრირება.
// პროგრამა 14.5
// პროგრამაში ხდება ContainsKey() და ContainsValue() მეთოდებთან
// მუშაობის დემონსტრირება

Hashtable HeshCxrili = new Hashtable();

//
HeshCxrili.Add(“კა”, “კახეთი”);
HeshCxrili.Add(“იმ”, “იმერეთი”);
HeshCxrili.Add(“თუ”, “თუშეთი”);
HeshCxrili.Add(“ხე”, “ხევსურეთი”);
foreach ( string Gasagebi in HeshCxrili.Keys )
label1.Text += Gasagebi.ToString() + ‘\n’;
foreach ( string Mnishvneloba in HeshCxrili.Values )
label1.Text += Mnishvneloba.ToString() + ‘\n’;

//
if ( HeshCxrili.ContainsKey(“კა”) )  label2.Text = “ჰეშ-ცხრილი შეიცავს მითითებულ გასაღებს”;
else       label2.Text = “ჰეშ-ცხრილი არ შეიცავს მითითებულ გასაღებს”;
//
if ( HeshCxrili.ContainsValue(“ხევსურეთი”) )  label3.Text = “ჰეშ-ცხრილი შეიცავს მითითებულ მნიშვნელობას”;
else       label3.Text = “ჰეშ-ცხრილი არ შეიცავს მითითებულ მნიშვნელობას”;

}

გასაღებებისა და მნიშვნელობების გადაწერა ერთგანზომილებიან მასივში. CopyTo() მეთოდი გამოიყენება ჰეშ-ცხრილიდან გასაღებებისა და მნიშვნელობების გადასაწერად ერთგანზომილებიან მასივში. მისი სინტაქსია: Hashtable.Keys.CopyTo(მასივი, ინდექსი) მეთოდი დაწყებული ინდექსი პოზიციიდან მითითებულ მასივში გადაწერს ჰეშ-ცხრილის გასაღებებს.

Hashtable.Values.CopyTo(მასივი, ინდექსი) მეთოდი დაწყებული ინდექსი პოზიციიდან მითითებულ მასივში გადაწერს ჰეშ-ცხრილის მნიშვნელობებს.

მოყვანილ პროგრამაში ხდება ამ მეთოდებთან მუშაობის დემონსტრირება.

{

//          პროგრამა 14.6

//          პროგრამაში ხდება CopyTo() მეთოდთან მუშაობის დემონსტრირება

Hashtable HeshCxrili = new Hashtable();

HeshCxrili.Add(“კა”, “კახეთი”);
HeshCxrili.Add(“იმ”, “იმერეთი”);
HeshCxrili.Add(“თუ”, “თუშეთი”); HeshCxrili.Add(“ხე”, “ხევსურეთი”);
string[] Gasagebebi     = new string[HeshCxrili.Count]; string[] Mnishvnelobebi = new string[HeshCxrili.Count];

foreach ( string Gasagebi in HeshCxrili.Keys )
label1.Text += Gasagebi.ToString() + ‘\n’;
foreach ( string Mnishvneloba in HeshCxrili.Values )
label1.Text += Mnishvneloba.ToString() + ‘\n’;

//

HeshCxrili.Keys.CopyTo(Gasagebebi, 0); foreach ( string Gasagebi in Gasagebebi )     label2.Text += Gasagebi + ‘\n’;

//

HeshCxrili.Values.CopyTo(Mnishvnelobebi, 0); foreach ( string Mnishvneloba in Mnishvnelobebi )     label3.Text += Mnishvneloba + ‘\n’;

}

ავტორი რომან სამხარაძე

Facebook (0)