Робота з хеш-таблицями в 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.