Deff_Dev

[Unity/C#] 해시테이블 (HashTable) 본문

Unity(유니티)/유니티 공부

[Unity/C#] 해시테이블 (HashTable)

Deff_a 2024. 3. 20. 20:00

해당 포스팅은 고박사님의 유니티 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