26.07.2013 Views

Operativsystem: .............................................................

Operativsystem: .............................................................

Operativsystem: .............................................................

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

værdien ”erik jensen”? beregner systemet hashkoden og går direkte til index 155!! På den måde<br />

fungerer en Hashtable meget hurtigere end en almindelig tabel!!<br />

Modsat en almindelig tabel gemmes data i en hashtable altid som et par af en key og en value (lige<br />

som en ordbog eller en telefonliste med navn (key) og telefonnummer (value)). Som value kan<br />

anvendes alle objekter også fx en ArrayList! En hashtable er altså meget fleksibel og anvendelig til<br />

at gemme data systematisk!<br />

Følgende eksempel på anvendelsen af en hash tabel anvender metoder fra System.IO (filer) som vi<br />

vil gennemgå på et senere tidspunkt. Programmet opretter en række keys (fil navne) og tilsvarende<br />

values (filernes tekstindhold) – hvilket giver en meget hurtig tilgang til disse filtekster bagefter!:<br />

// eksempel paa en Hashtable<br />

using System;<br />

using System.Collections;<br />

using System.IO;<br />

class MainClass<br />

{<br />

private static Hashtable tabel;<br />

}<br />

public static void Main(string[] args)<br />

{<br />

tabel=new Hashtable();<br />

DirectoryInfo dir=new DirectoryInfo(@"C:\csharp\csfiler");<br />

FileInfo[] filer=dir.GetFiles();<br />

StreamReader reader=null;<br />

string indhold=null;<br />

foreach(FileInfo fil in filer){<br />

reader=File.OpenText(fil.FullName);<br />

indhold=reader.ReadToEnd();<br />

reader.Close();<br />

}<br />

//læg data ind i vores hashtabel: key – value:<br />

tabel.Add(fil.Name,indhold);<br />

}<br />

Console.WriteLine("Indtast filnavn:");<br />

string sv=Console.ReadLine();<br />

//tabel[sv] udskriver den value som svarer til key ’sv’:<br />

if(tabel.Contains(sv)){<br />

Console.WriteLine(tabel[sv]);<br />

}<br />

else Console.WriteLine("Filen findes ikke i hash tabellen!");<br />

HashTable indeholder også nyttige metoder og properties som:<br />

if(tabel.ContainsValue(”...”))<br />

tabel.Remove(key-streng)<br />

tabel.Count<br />

tabel.IsReadOnly=true

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!