[Unity/C#]Collections/Generic Collections

강동현·2023년 12월 30일
0

Unity/C#

목록 보기
2/26

1-1. ArrayList

  • 가변 배열
  • C++ Vector와 유사
  • Object 타입 저장 => 모든 자료형 저장 가능
  • ArrayList 단점
    속도가 느리다.
ArrayList list = new ArrayList();
list.Add("Hello");
list.Add(6);
list.Add("World");
list.Add(true);
list.RemoveAt(0);
list.Remove(6);
for (int i = 0; i < list.Count; i++)
{
    Debug.Log(list[i]);
}

1-2. List< T >

  • 박싱 & 언박싱 성능 감소 문제 해결
  • 가변 배열
  • C++ Vector와 유사
    속도가 느리다.
//ArrayList의 Generic = List<T>
List<int> list = new List<int>();
list.Add(10);
list.Add(20);
list.Add(30);
list.Add(40);
list.Add(50);
list.RemoveAt(0);
list.Remove(40);
list.Insert(1, 25);
for (int i = 0; i < list.Count; i++)
{
    Debug.Log(list[i]);
}

2-1. HashTable

  • 키와 값으로 구성된 해시 테이블
  • C++ map과 유사
  • Object 타입 저장 => 모든 자료형 저장 가능
  • HashTable 장점
    속도가 빠르다.
  • HashTable 단점
    속도가 느리다.
Hashtable hash = new Hashtable();
hash["one"] = 1;
hash[2] = "two";
hash['t'] = "three;
Debug.Log(hash["one"]);
Debug.Log(hash[2]);
Debug.Log(hash['t']);

2-2. Dictionary<KEY, VAL>

  • 박싱 & 언박싱 성능 감소 문제 해결
  • 키와 값으로 구성된 해시 테이블
  • C++ map과 유사
//Hashmap<Object, Object>의 Generic = Dictionary<TKey, TValue>
Dictionary<string, string> dic = new Dictionary<string, string>();
dic["하나"] = "one";
dic["둘"] = "one";
dic["셋"] = "one";
Debug.Log(dic["하나"]);
Debug.Log(dic["둘"]);
Debug.Log(dic["셋"]);

3-1. Stack

  • stack 자료구조
  • C++ stack과 유사
  • Object 타입 저장 => 모든 자료형 저장 가능
Stack stk = new Stack();
stk.Push(5);
stk.Push(10);
stk.Push(15);
stk.Peek();//C++ stack top()의 기능
while(stk.Count > 0){
	Debug.Log(stk.pop());
}

3-2. Stack< T >

  • stack 자료구조
  • C++ stack과 유사
//Stack의 Generic = Stack<T>
Stack<int> stk = new Stack<int>();
stk.Push(1);
stk.Push(2);
stk.Push(3);
while (stk.Count > 0) stk.Pop();

4-1. Queue

  • queue 자료구조
  • C++ queue과 유사
  • Object 타입 저장 => 모든 자료형 저장 가능
Queue que = new Queue();
que.Enqueue(5);
que.Enqueue(10);
que.Enqueue(15);
que.Peek();//C++ queue front()의 기능
while(que.Count > 0){
	que.Dequeue();
}

4-2. Queue< T >

  • queue 자료구조
  • C++ queue과 유사
//Queue의 Generic = Queue<T>
Queue<int> que = new Queue<int>();
que.Enqueue(1);
que.Enqueue(2);
que.Enqueue(3);
while (que.Count > 0) que.Dequeue();
profile
GAME DESIGN & CLIENT PROGRAMMING

0개의 댓글