Praca z tablicami haszującymi w Unity
Hashtable to zbiór par klucz-wartość, który umożliwia wydajne przechowywanie i pobieranie danych. Każdy klucz w Hashtable musi być unikalny i służy do uzyskiwania dostępu do odpowiadającej mu wartości. W Unity Hashtable są częścią przestrzeni nazw System.Collections
i mogą być szczególnie przydatne do przechowywania niegenerycznych struktur danych.
Tworzenie tablicy mieszającej
Aby użyć Hashtable w Unity, najpierw musisz zaimportować przestrzeń nazw System.Collections
, a następnie zainicjować nowy obiekt Hashtable. Oto przykład:
using System.Collections;
using UnityEngine;
public class HashtableExample : MonoBehaviour
{
void Start()
{
Hashtable myHashtable = new Hashtable();
// Adding key-value pairs
myHashtable.Add("PlayerName", "Alex");
myHashtable.Add("Score", 1500);
myHashtable.Add("Level", 5);
// Accessing values
Debug.Log("Player Name: " + myHashtable["PlayerName"]);
Debug.Log("Score: " + myHashtable["Score"]);
Debug.Log("Level: " + myHashtable["Level"]);
}
}
Dodawanie i uzyskiwanie dostępu do danych
Możesz dodać dane do Hashtable za pomocą metody Add
. Aby pobrać wartość, użyj klucza w nawiasach kwadratowych:
myHashtable.Add("Health", 100);
int health = (int)myHashtable["Health"];
Debug.Log("Health: " + health);
Jeśli klucz już istnieje, próba użycia Add
spowoduje wyjątek. Zamiast tego użyj klucza bezpośrednio, aby zaktualizować wartość:
myHashtable["Health"] = 80; // Updates the value associated with the key
Sprawdzanie kluczy i wartości
Aby sprawdzić, czy klucz istnieje w Hashtable, użyj metody ContainsKey
. Podobnie, użyj ContainsValue
, aby sprawdzić wartość:
if (myHashtable.ContainsKey("Score"))
{
Debug.Log("Score exists: " + myHashtable["Score"]);
}
if (myHashtable.ContainsValue(1500))
{
Debug.Log("Value 1500 is in the Hashtable.");
}
Usuwanie danych
Możesz usunąć wpis z tablicy haszującej za pomocą metody Remove
:
myHashtable.Remove("Level");
Debug.Log("Level removed.");
Iterowanie przez tablicę haszującą
Aby przejść przez wszystkie pary klucz-wartość w tablicy skrótów, należy użyć pętli foreach
:
foreach (DictionaryEntry entry in myHashtable)
{
Debug.Log("Key: " + entry.Key + ", Value: " + entry.Value);
}
Ograniczenia tablic mieszających
Tablice haszujące nie są generyczne i brakuje im bezpieczeństwa typu. Jeśli potrzebujesz lepszego bezpieczeństwa typu i wydajności, rozważ użycie generycznego Dictionary
z przestrzeni nazw System.Collections.Generic
. Tablice haszujące są przydatne głównie podczas pracy z kolekcjami niegenerycznymi lub interfejsami ze starszymi bazami kodu.
Wniosek
Tabele haszujące w Unity zapewniają prosty sposób zarządzania parami klucz-wartość w Twoich projektach. Chociaż nie są one najnowocześniejszym typem kolekcji, pozostają słusznym wyborem w wielu scenariuszach. Rozumiejąc, jak tworzyć, uzyskiwać dostęp i manipulować tablicami haszującymi, możesz wydajnie zarządzać danymi w swoich aplikacjach Unity.