Jak pracovat s kolekce HashTable v jazyce Visual Basic .NET nebo Visual Basic 2005

Souhrn

Tento článek obsahuje informace o kolekce HashTable. Protože zatřiďování eliminuje potřebu nákladné vyhledávání dat načíst data, můžete použít algoritmus hash účinně načítat data. K vyhledání dat hash používá hodnotu klíč samotný.

Knihovny třídy Base nabízejí HashTable třídy, která je definována v oboru názvů System.Collections , takže není nutné kód hash tabulek.

Kroky k vytvoření vzorku

Kolekce HashTable ukládá dvojice (klíč, hodnota) a používá klíč algoritmu hash a získat umístění úložiště. Klíč je neměnná a nemůže mít duplicitní položky v HashTable. Tento příklad používá k uložení v HashTableněkolik instancí třídy jednoduché osoby . Poslední název slouží jako klíč.

  1. Otevřete aplikaci Microsoft Visual Studio .NET nebo Microsoft Visual Studio 2005 a vytvořit projekt aplikace Windows v Visual Basic .NET nebo Visual Basic 2005. Ve výchozím nastavení je do projektu přidány Form1.
  2. V Průzkumníku řešení klikněte pravým tlačítkem myši na název projektu, přejděte na příkaz Přidata potom klepněte na tlačítko Přidání třídy Chcete-li přidat modul třídy . Ve výchozím nastavení je do projektu přidány Class1.
  3. V dialogovém okně Přidat novou položku klepněte na tlačítko Otevřít.

    Poznámka: V aplikaci Visual Studio 2005 klepněte na tlačítko Přidat namísto Otevřít.
  4. Nahraďte veškerý kód v modulu Class1 následující kód:
    Public Class Person    Public Fname, Lname As String

    Sub New(ByVal FirstName As String, ByVal LastName As String)
    Fname = FirstName
    Lname = LastName
    End Sub

    Public Overrides Function ToString() As String
    Return Fname + " " + Lname
    End Function
    End Class

    Třída osoba má jeden konstruktor, který přebírá jméno a Příjmení parametry a přiřadí tyto parametry místní proměnné. Funkce ToString přepíše ToString z objektu třídy vrátit Fname a Lname spolu zřetězeny.
  5. V Form1.vb přidejte do horní části modulu kódu následující příkaz Imports :
    Imports System.Collections
  6. Vytvoření objektu Hashtable úrovni formuláře a deklarovat tři proměnné typu osoba. Přidejte následující kód třídy Form1:
    Dim MyTable As New Hashtable()
    'For simplicity, create three Person objects to add to the HashTable collection.

    Dim Person1, Person2, Person3 As Person

  7. V následujících krocích pomocí metody Add Hashtable objektu přidat tři osoba objekty Hashtable v bloku try-catch . Blok try-catch zachytí výjimku a zobrazí zprávu, pokud existují duplicitní klíče.
    1. Umístěte ovládací prvek tlačítko na Form1 a změňte vlastnost Text Chcete-li Přidat prvky.
    2. Poklepejte na tlačítko otevřete jeho okno kód a vložte následující kód v události Button1_Click :
      Person1 = New Person("Karen", "Berge")Person2 = New Person("David", "Campbell")
      Person3 = New Person("Jim", "Kim")

      'The Add method takes Key as the first parameter and Value as the second parameter.

      Try
      MyTable.Add(Person1.Lname, Person1)
      MyTable.Add(Person2.Lname, Person2)
      MyTable.Add(Person3.Lname, Person3)
      Catch ae As ArgumentException
      MessageBox.Show("Duplicate Key")
      End Try

  8. Na Hashtable objekt obsahuje indexovací člen. V následujících krocích, index se klíč hodnota uložená v umístění hodnoty hash přístup.
    1. Přidání ovládacího prvku tlačítko do formuláře Form1 a změňte vlastnost Text k Získání položek.
    2. Poklepejte na tlačítko a vložte následující kód v Button2_Click událost:
      'Use the indexer of the Hashtable class to retrieve your objects. The indexer takes 'Key as a parameter and accesses it with the Hashed location.

      Try
      MessageBox.Show(MyTable(Person1.Lname).ToString)
      MessageBox.Show(MyTable(Person2.Lname).ToString)
      MessageBox.Show(MyTable(Person3.Lname).ToString)
      Catch ex As NullReferenceException
      MessageBox.Show("Key not in Hashtable")
      End Try

  9. V následujících krocích použijte metodu Remove odebrat jednu položku z kolekce zatřiďovací tabulku:
    1. Přidání ovládacího prvku tlačítko do formuláře Form1 a změňte vlastnost Text na Položku odebrat.
    2. Poklepejte na tlačítko a vložte následující kód v události Button3_Click :
      'Use the Count property.If (MyTable.Count = 0) Then
      MessageBox.Show("There are no items in HashTable")
      Else
      MessageBox.Show("The count before removing an Item is" & " " & MyTable.Count)
      MessageBox.Show("Removing value stored at key value (Berge)")
      'Remove the object that is stored at the Key value Person1.Lname.
      MyTable.Remove(Person1.Lname)
      End If

  10. V následujících krocích výčet položek, které jsou uloženy v kolekci zatřiďovací tabulku.
    1. Přidání ovládacího prvku tlačítko do formuláře Form1 a změňte vlastnost Text Chcete-li vytvořit výčet.
    2. Poklepejte na tlačítko a vložte následující kód v události Button4_Click :
      Dim Enumerator As IDictionaryEnumeratorEnumerator = MyTable.GetEnumerator()

      If (MyTable.Count = 0) Then
      MessageBox.Show("The HashTable is empty")
      Else
      MessageBox.Show("Enumerating through the HashTable collection")
      While Enumerator.MoveNext()
      MessageBox.Show(Enumerator.Value.ToString())
      End While
      End If

      Dim MyKeys As ICollection
      Dim Key As Object

      If (MyTable.Count = 0) Then
      MessageBox.Show("The HashTable is empty")
      Else
      MessageBox.Show("Accessing keys property to return keys collection")
      MyKeys = MyTable.Keys()

      For Each Key In MyKeys
      MessageBox.Show(Key.ToString)
      Next
      End If

      Tento kód deklaruje proměnnou typu IDictionaryEnumerator a volá metodu GetEnumerator kolekce HashTable. S čítač výčtu vrátí kód výčet prostřednictvím položek v kolekci a používá klíče metoda HashTable provedení výčtu klíčů.
  11. V následujících krocích použijte metodu zrušte zaškrtnutí zrušte HashTable.
    1. Přidání ovládacího prvku tlačítko do formuláře Form1 a změňte vlastnost Text Vymazat.
    2. Poklepejte na tlačítko a vložte následující kód v události Button5_Click :
      MyTable.Clear()MessageBox.Show("HashTable is now empty")

  12. Postupujte podle následujících kroků k vytvoření a spuštění aplikace:
    1. Klepněte na tlačítko Přidat položky. Všimněte si, že tři osoba objekty jsou přidány do kolekce zatřiďovací tabulku.
    2. Klepněte na tlačítko Získat položky. Všimněte si, že získává službu indexování položek v kolekci zatřiďovací tabulku. Tři nově přidané položky se zobrazí.
    3. Klepněte na tlačítko Odebrat. Všimněte si, že položku na místě klíče "Berge" se zrušuje.
    4. Klepněte na tlačítko vytvořit výčet. Všimněte si, že IDictionaryEnumerator vytvoří výčet prostřednictvím položek v kolekci zatřiďovací tabulku.
    5. Klepněte na tlačítko Vymazat. Všimněte si, že z kolekce HashTable budou vymazány všechny položky.
Poznámka: společností, organizací, produktů, názvy domén, e-mailové adresy, loga, osoby, místa a události použité v ukázkách jsou smyšlené. Žádná souvislost se skutečnou společností, organizace, produktu, název domény, e-mailovou adresu, loga, osoby, místa nebo události je určena nebo nelze vyvozovat.

Vlastnosti

ID článku: 307933 - Poslední kontrola: 20. 1. 2017 - Revize: 1

Váš názor