Deff_Dev
[Unity/C#] 해시테이블 (HashTable) 본문
해당 포스팅은 고박사님의 유니티 C# 강의를 보고 공부한 내용과 추가적으로 공부한 내용을 정리한 포스팅입니다.
해시테이블 (Hashtable)
- 키(Key)와 값(Value)의 쌍으로 이루어진 데이터를 다룰 때 사용하는 자료 구조
- 해시테이블은 요소에 접근하기 위해 object 타입의 데이터를 사용한다.
- 키(Key)는 int, float, string, class 등 어떤 형식이든 사용 가능하다.
- 배열 만큼 탐색 속도가 빠르다.
- 해시테이블 데이터의 모든 요소를 탐색할 때는 foreach 사용
- ex) hashtable[”Player”], hashtable[100] …
해시테이블 함수
HashTable.Add(object(Key), object(Value))
- 해당 키를 사용하는 값을 추가한다.
- int, float, string, class, null 등 원하는 데이터 추가 가능
HashTable.Remove(object)
- 매개변수에 입력된 데이터를 키로 가지는 요소 삭제
HashTable.ContainsKey(object)
- 매개변수에 입력된 데이터를 키로 가지는 요소가 있는지 검사
- 존재한다면 True, 존재하지 않다면 False 반환
HashTable.ContainsValue(object)
- 매개변수에 입력된 데이터를 값으로 가지는 요소가 있는지 검사
- 존재한다면 True, 존재하지 않다면 False 반환
HashTable.Keys
- 해시테이블에 있는 모든 키 정보를 나타내는 프로퍼티
HashTable.Count()
- 해시테이블에 저장된 요소들의 갯수
HashTable.Clear()
- 해시테이블의 모든 요소 삭제
using System.Collections;
using UnityEngine;
public class TestManager : MonoBehaviour
{
private void Awake()
{
// 해시 테이블 선언
Hashtable hash = new Hashtable();
Player player = new Player();
// 요소 추가
hash.Add("안녕", 100);
hash.Add(12, "하이");
hash.Add(1.5f, 3500);
hash.Add("deff", 0.7f);
hash.Add("Player", player);
// ContainsKey : 해당 키를 가지고 있는 요소가 있는지
Debug.Log(hash.ContainsKey("안녕")); // true 출력
Debug.Log(hash.ContainsKey(100)); // false 출력
// ContainsValue : 해당 값을 가지고 있는 요소가 있는지
Debug.Log(hash.ContainsValue("안녕")); // false 출력
Debug.Log(hash.ContainsValue(100)); // true 출력
// Remove : 해당 키를 가지고 있는 요소 삭제
hash.Remove("안녕"); // 안녕 제거
// Count : hash에 저장된 요소들의 갯수
Debug.Log(hash.Count); // 4 출력
// foreach를 이용해 hash 안의 모든 요소 출력
// hash.Keys : hash의 모든 키 정보를 나타내는 프로퍼티
foreach (var value in hash.Keys)
{
Debug.Log(value);
}
hash.Clear(); // hash 안에 있는 모든 요소 삭제
}
}
public class Slime{
// ...
}
'Unity(유니티) > 유니티 공부' 카테고리의 다른 글
[Unity/C#] null 조건부 연산자 (?.) (0) | 2024.04.10 |
---|---|
[Unity/C#] Unity Ads 문제와 해결 방법 (0) | 2024.03.26 |
[Unity/C#] 스택 (Stack) (0) | 2024.03.20 |
[Unity/C#] 큐 (Queue) (0) | 2024.03.20 |
[Unity/C#] ArrayList (0) | 2024.03.20 |