Робота з хеш-таблицями в Unity
Хеш-таблиця — це набір пар ключ-значення, який дозволяє ефективно зберігати та отримувати дані. Кожен ключ у Hashtable має бути унікальним, і він використовується для доступу до відповідного значення. У Unity хеш-таблиці є частиною простору імен System.Collections
і можуть бути особливо корисними для зберігання незагальних структур даних.
Створення хеш-таблиці
Щоб використовувати Hashtable у Unity, спочатку потрібно імпортувати простір імен System.Collections
, а потім ініціалізувати новий об’єкт Hashtable. Ось приклад:
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"]);
}
}
Додавання та доступ до даних
Ви можете додати дані до хеш-таблиці за допомогою методу Add
. Щоб отримати значення, використовуйте ключ у квадратних дужках:
myHashtable.Add("Health", 100);
int health = (int)myHashtable["Health"];
Debug.Log("Health: " + health);
Якщо ключ уже існує, спроба використати Add
призведе до виключення. Натомість використовуйте ключ безпосередньо, щоб оновити значення:
myHashtable["Health"] = 80; // Updates the value associated with the key
Перевірка ключів і значень
Щоб перевірити, чи існує ключ у хеш-таблиці, використовуйте метод ContainsKey
. Подібним чином використовуйте ContainsValue
, щоб перевірити значення:
if (myHashtable.ContainsKey("Score"))
{
Debug.Log("Score exists: " + myHashtable["Score"]);
}
if (myHashtable.ContainsValue(1500))
{
Debug.Log("Value 1500 is in the Hashtable.");
}
Видалення даних
Ви можете видалити запис із хеш-таблиці за допомогою методу Remove
:
myHashtable.Remove("Level");
Debug.Log("Level removed.");
Ітерація через хеш-таблицю
Щоб переглянути всі пари ключ-значення в хеш-таблиці, використовуйте цикл foreach
:
foreach (DictionaryEntry entry in myHashtable)
{
Debug.Log("Key: " + entry.Key + ", Value: " + entry.Value);
}
Обмеження хеш-таблиць
Хеш-таблиці не є загальними та не мають безпеки типу. Якщо вам потрібна краща безпека типів і продуктивність, розгляньте можливість використання загального Dictionary
із простору імен System.Collections.Generic
. Хеш-таблиці в основному корисні під час роботи з незагальними колекціями або взаємодії зі старішими кодовими базами.
Висновок
Хеш-таблиці в Unity забезпечують простий спосіб керування парами ключ-значення у ваших проектах. Хоча вони не є найсучаснішим типом колекції, вони залишаються дійсним вибором для багатьох сценаріїв. Розуміючи, як створювати хеш-таблиці, отримувати доступ до них і керувати ними, ви зможете ефективно керувати даними у своїх програмах Unity.