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와 유사
속도가 느리다.
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과 유사
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();
while(stk.Count > 0){
Debug.Log(stk.pop());
}
3-2. 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();
while(que.Count > 0){
que.Dequeue();
}
4-2. Queue< T >
Queue<int> que = new Queue<int>();
que.Enqueue(1);
que.Enqueue(2);
que.Enqueue(3);
while (que.Count > 0) que.Dequeue();