유니티 C# 자료구조 Dictionary (딕셔너리)
C#에는 많은 자료 구조가 있지만, 상황별로 가장
적절한 자료구조를 쓰는 것이 중요하다.
오늘은 게임 개발에서 유용하게 쓰일 수 있는
C# 자료구조 Dictionary에 대해 알아보고
이 자료구조가 왜 유용하지에 대해 알아보겠다.
먼저 여러 자료구조들의 추가, 검색, 삭제, 인덱스 접근에
대한 시간복잡도를 나타내는 표이다. 보시다시피 딕셔너리는
추가, 검색, 삭제 부분에서 상수시간의 시간복잡도를 보인다.
이것만 보아도 딕셔너리의 효율성을 짐작할 수 있다.
간단하게 딕셔너리의 사용법에 대해 알아보도록 하자.
먼저 Dictionary(딕셔너리)는 사용자가 원하는 대로 키를
설정할 수 있는 자료구조이다. 또한 이 키값으로 int뿐만아니라
문자열이나 다양한 변수형을 넣을 수 있다는 점이다.
인터넷에 좋은 예제가 있어 실습겸 작성해보았다.
01. 아이템 클래스
02. Dictionary (딕셔너리) 선언 그리고 추가 , 검색
03. Dictionary(딕셔너리) 출력 , 삭제, 비우기
딕셔너리는 헤시 테이블과 상당히 유사하지만
헤시 테이블은 자료형에 대한 정의가 없다.
딕셔너리는 자료형을 명확하게 설정하기 때문에
속도면에서 딕셔너리가 좋은 성능을 보인다. (박싱 / 언박싱)
따라서 헤시 테이블 보다는 딕셔너리가 더욱 좋은 경우가 많다.
상황에 맞는 적절한 자료구조의 사용은
게임을 만드는 데 있어 성능향상을 가져오는
상당히 중요한 부분이기 때문에 많은 공부가
필요한 부분이 되겠다. 다음 포스팅은
헤시 테이블이 딕셔너리보다 느린 이유
박싱/언박싱에 대해 알아보도록 하겠다.
'C#, 유니티' 카테고리의 다른 글
[C#] 가변길이 매개 변수 , 명명된 매개 변수 (0) | 2017.02.17 |
---|---|
[C#] ref 키워드 (참조자) , out 키워드 (출력 전용 매개 변수) (0) | 2017.02.17 |
[C#] 박싱/언박싱 (boxing/unboxing) (0) | 2017.02.15 |
[유니티 C#] 싱글턴 오브젝트 (0) | 2017.01.13 |
[유니티 C#] Property (프로퍼티) (0) | 2017.01.12 |