유니티 C# 자료구조 Dictionary (딕셔너리)



C#에는 많은 자료 구조가 있지만, 상황별로 가장

적절한 자료구조를 쓰는 것이 중요하다.

오늘은 게임 개발에서 유용하게 쓰일 수 있는

C# 자료구조 Dictionary에 대해 알아보고

이 자료구조가 왜 유용하지에 대해 알아보겠다.








먼저 여러 자료구조들의 추가, 검색, 삭제, 인덱스 접근에

대한 시간복잡도를 나타내는 표이다. 보시다시피 딕셔너리는

추가, 검색, 삭제 부분에서 상수시간의 시간복잡도를 보인다.

이것만 보아도 딕셔너리의 효율성을 짐작할 수 있다.




간단하게 딕셔너리의 사용법에 대해 알아보도록 하자.

먼저 Dictionary(딕셔너리)는 사용자가 원하는 대로 키를

설정할 수 있는 자료구조이다.  또한 이 키값으로 int뿐만아니라

문자열이나 다양한 변수형을 넣을 수 있다는 점이다.


 인터넷에 좋은 예제가 있어 실습겸 작성해보았다.




01. 아이템 클래스




02. Dictionary (딕셔너리) 선언 그리고 추가 , 검색




03. Dictionary(딕셔너리) 출력 , 삭제, 비우기




딕셔너리는 헤시 테이블과 상당히 유사하지만

헤시 테이블은 자료형에 대한 정의가 없다.

딕셔너리는 자료형을 명확하게 설정하기 때문에

속도면에서 딕셔너리가 좋은 성능을 보인다. (박싱 / 언박싱)

따라서 헤시 테이블 보다는 딕셔너리가 더욱 좋은 경우가 많다.




상황에 맞는 적절한 자료구조의 사용은

게임을 만드는 데 있어 성능향상을 가져오는

상당히 중요한 부분이기 때문에 많은 공부가

필요한 부분이 되겠다. 다음 포스팅은

헤시 테이블이 딕셔너리보다 느린 이유

박싱/언박싱에 대해 알아보도록 하겠다.


+ Recent posts