Travailler avec des tables de hachage dans Unity
Une table de hachage est une collection de paires clé-valeur qui vous permet de stocker et de récupérer des données de manière efficace. Chaque clé d'une table de hachage doit être unique et elle est utilisée pour accéder à la valeur correspondante. Dans Unity, les tables de hachage font partie de l'espace de noms System.Collections
et peuvent être particulièrement utiles pour stocker des structures de données non génériques.
Créer une table de hachage
Pour utiliser une table de hachage dans Unity, vous devez d'abord importer l'espace de noms System.Collections
, puis initialiser un nouvel objet Hashtable. Voici un exemple:
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"]);
}
}
Ajout et accès aux données
Vous pouvez ajouter des données à une table de hachage à l'aide de la méthode Add
. Pour récupérer une valeur, utilisez la clé entre crochets:
myHashtable.Add("Health", 100);
int health = (int)myHashtable["Health"];
Debug.Log("Health: " + health);
Si une clé existe déjà, la tentative d'utilisation de Add
génèrera une exception. Utilisez plutôt la clé directement pour mettre à jour la valeur:
myHashtable["Health"] = 80; // Updates the value associated with the key
Vérification des clés et des valeurs
Pour vérifier si une clé existe dans la table de hachage, utilisez la méthode ContainsKey
. De même, utilisez ContainsValue
pour vérifier une valeur:
if (myHashtable.ContainsKey("Score"))
{
Debug.Log("Score exists: " + myHashtable["Score"]);
}
if (myHashtable.ContainsValue(1500))
{
Debug.Log("Value 1500 is in the Hashtable.");
}
Suppression des données
Vous pouvez supprimer une entrée de la table de hachage à l'aide de la méthode Remove
:
myHashtable.Remove("Level");
Debug.Log("Level removed.");
Itération dans une table de hachage
Pour parcourir toutes les paires clé-valeur dans une table de hachage, utilisez une boucle foreach
:
foreach (DictionaryEntry entry in myHashtable)
{
Debug.Log("Key: " + entry.Key + ", Value: " + entry.Value);
}
Limitations des tables de hachage
Les tables de hachage ne sont pas génériques et manquent de sécurité de type. Si vous avez besoin d'une meilleure sécurité de type et de meilleures performances, envisagez d'utiliser le Dictionary
générique de l'espace de noms System.Collections.Generic
. Les tables de hachage sont principalement utiles lorsque vous travaillez avec des collections non génériques ou que vous interagissez avec des bases de code plus anciennes.
Conclusion
Les tables de hachage dans Unity offrent un moyen simple de gérer les paires clé-valeur dans vos projets. Bien qu'elles ne constituent pas le type de collection le plus moderne, elles restent un choix valable pour de nombreux scénarios. En comprenant comment créer, accéder et manipuler les tables de hachage, vous pouvez gérer efficacement les données dans vos applications Unity.