5. osa Kollektsioonid. Listid ja sõnastikud.

MeetodSelgitus
Add(item)Lisa element lõppu
Contains(item)Kontrolli, kas element on olemas
CountElementide arv
Insert(i,item)Lisa kindlasse kohta
IndexOf(item)Otsi elemendi indeks
Sort()Järjesta kasvavalt

1. Sõnastikud (Dictionaries)

Sõnastikud (Dictionary<TKey, TValue>) on andmestruktuurid, kus iga element koosneb kahest osast:

  • Key — unikaalne võtmeväärtus (tavaliselt mingi tekst või number).
  • Value — väärtus, mis on seotud antud võtmega (näiteks tekst, number, objekt jne).

Koodis on sõnastik kasutusel piirkondade ja nende pealinnade salvestamiseks:




Dictionary&lt;string, string&gt; okrugid = new Dictionary&lt;string, string&gt;()
{
    {"Harjumaa", "Tallinn"},
    {"Tartumaa", "Tartu"},
    {"Pärnumaa", "Pärnu"},
    {"Ida-Virumaa", "Jõhvi"},
    {"Läänemaa", "Haapsalu"}
};

—————————————————————————————-

2. Kasutaja interaktsioon ja andmete lisamine

Programmi ülesanne on võimaldada kasutajal teha järgmisi tegevusi:

  • Otsi piirkonda (okrugi) järgi: Sisestades maakonna nime, saab teada selle pealinna.
  • Otsi pealinna järgi: Sisestades pealinna nime, saab teada, milline on vastav maakond.
  • Lisamine, kui andmed puuduvad: Kui sisestatud piirkond või pealinn puudub sõnastikus, saab kasutaja lisada uue andmepaari.
if (okrugid.ContainsKey(okrug)) // Kui sõnastikus on juba see piirkond
{
    Console.WriteLine($"{okrug} stolits on {okrugid[okrug]}.");
}
else
{
    Console.WriteLine("Okrugi ei leitud. Sisesta stolitsa nimi, et lisada see sõnastikku:");
    string stolitsa = Console.ReadLine();
    okrugid[okrug] = stolitsa; // Lisame sõnastikku uue paari
    Console.WriteLine("Okrug ja stolitsa lisatud.");
}


—————————————————————————————-

3. Millal mida kasutada?

AndmetüüpMillal kasutada?
ArrayListLihtsaks prototüüpimiseks (vanem kood)
ListEnamiku tavaliste andmekogumite jaoks
LinkedListKui palju lisada/teha muudatusi keskel
Dictionary<K,V>Kiire otsing võtme alusel
Tuple<T1,T2>Ajutiseks mitme eri tüübi väärtuse hoidmiseks

Kokkuvõte:

  • Sõnastikud (Dictionary) on kasulikud, kui andmed tuleb siduda unikaalse võtme alusel ja neid on vaja kiiresti leida. See tagab kiire juurdepääsu andmetele.
  • Listid (List<T>) sobivad, kui on vaja salvestada järjekorras olevaid elemente, näiteks mängu tegemiseks või muudatusi järjekorda panna.
  • Kasutaja saab alati lisada uusi andmeid ja vastata küsimustele, millel põhineb sõnastiku abil toimuv otsing ja mäng.