[] 배열 :
값으로 검색할 필요 없는 경우( 해야한다면 HashTable 이 빠르다 )
검색시 키가 숫자인 경우 ( 키가 숫자가 아니면 Dictionary 가 빠르다 )
맨 앞 또는 맨 뒤만 접근 하는 경우 Queue, Stack 이 빠르다
동적배열( ArrayList, List<T> ) :
ArrayList 는 자료형에 상관 없이 아무거나 넣는 구조
List 는 특정 자료형을 선택하여 같은 종류의 것암 넣는 구조
배열의 크기를 확정하지 않고 유동적으로 써야 할 때
검색 코드 ->
Transform t = myList.Find( delegate(Transform tm) { return tm.name == "name"; } );
Linked List :
노드가 다음/이전 노드의 포인터를 갖고 있다
삽입/삭제 빠르다( 위의 표 검색 값은 O(n)으로 표기 되었지만 O(1)임 )
검색은 전체 검색을 함 비효율
Dictionary :
키값으로 문자도 쓸수 있고 삽입, 삭제, 검색 골고루 효율적
단점 찾아봐야함
HashTable :
Generic 형식이 아닌 Object를 그대로 저장하는 방식
C#에서는 형 변환에 자원을 많이 소비하기 때문에 Dictionary가 속도면에서 효율적
HashSet :
Key-Value 구조가 아니라 유니크한 값(Value)로만 이루어져 있음