Unity でハッシュテーブルを操作する
ハッシュテーブルは、データを効率的に保存および取得できるキーと値のペアのコレクションです。ハッシュテーブル内の各キーは一意である必要があり、対応する値にアクセスするために使用されます。Unity では、ハッシュテーブルは System.Collections
名前空間の一部であり、非汎用データ構造を保存する場合に特に便利です。
ハッシュテーブルの作成
Unity で Hashtable を使用するには、まず 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);
}
ハッシュテーブルの制限
ハッシュテーブルは非ジェネリックであり、型の安全性に欠けています。より優れた型の安全性とパフォーマンスが必要な場合は、System.Collections.Generic
名前空間のジェネリック Dictionary
の使用を検討してください。ハッシュテーブルは、主に非ジェネリック コレクションを操作する場合や、古いコードベースとインターフェイスする場合に役立ちます。
結論
Unity のハッシュテーブルは、プロジェクト内のキーと値のペアを管理する簡単な方法を提供します。最新のコレクション タイプではありませんが、多くのシナリオで有効な選択肢です。ハッシュテーブルの作成、アクセス、操作方法を理解することで、Unity アプリケーションでデータを効率的に管理できます。