Collection이란?
같은 성격을 띈 데이터들을 담는 자료구조로, ICollection 인터페이스를 상속받는다.
배열 또한 컬렉션의 일종이다.
using System.Collections를 사용하여 바로 접근 가능하다.
ArrayList
배열과 가장 비슷한 컬렉션
그러나 배열은 크기가 정해져있는 반면 ArrayList는 크기가 가변적으로 변한다.
List<>와 비슷한 역할을 하지만, List<>는 특정 타입만 담을 수 있고, ArrayList는 여러 타입을
전부 리스트에 넣어주는 것이 가능하다. 다 때려넣을 수 있다는게 장점.
사용예시
ArrayList arrayList = new ArrayList();
arrayList.Add("Hello");
arrayList.Add(10f);
for(int i = 0; i < 10; i++)
{
arrayList.Add(i);
}
foreach(var a in arrayList)
{
Debug.Log(a);
}
결과값
근데 특수한 경우 아닌 이상 성능적으로도 그렇고 웬만하면 List<T>를 사용하는게 더 나은 것 같긴 하다.
Queue
Queue는 선입선출(First In First Out) 즉 먼저 들어간 요소가 먼저 나오는 자료구조이다.
주요 메서드
- Enqueue() : 맨 뒤에 항목 새로 추가
- Dequeue() : 맨 앞의 항목 출력 후 제거
사용 예시
Queue queue = new Queue();
queue.Enqueue("one");
queue.Enqueue("two");
queue.Enqueue("three");
queue.Enqueue("four");
while (queue.Count > 0)
{
Debug.Log(queue.Dequeue());
}
결과값
Stack
Stack은 Queue와 다르게 후입선출(Last In First Out) 즉 먼저 들어간 요소가 나중에 나오고 마지막에 들어간 요소가 먼저 나오게 되는 자료구조이다.
주요 메서드
- Push()
- Pop()
사용 예시
Stack stack = new Stack();
stack.Push("1");
stack.Push("2");
stack.Push("3");
while (stack.Count > 0)
{
Debug.Log(stack.Pop());
}
결과값
HashTable
key와 value 한 쌍으로 이루어진 데이터의 모음
키와 요소에 따라 키를 넣으면 요소를 알려주는 자료구조이다.
사용 예시
Hashtable table = new Hashtable();
table.Add("사과", "apple");
table.Add("토마토", "tomato");
table["감자"] = "potato";
foreach (object obj in table.Keys)
{
Debug.Log($"{obj} : {table[obj]}");
}
결과값
근데 이것도 ArrayList의 경우처럼 그냥 Dictionary<TKey,TValue>를 쓰는게 나을 것 같다.
'C# 기초' 카테고리의 다른 글
[C#] 상속 - abstract(추상), virtual(가상) (0) | 2023.10.25 |
---|---|
[C#] Static 정적 키워드와 확장 메서드 (1) | 2023.10.25 |
[C#] ref, in, out 참조에 의한 호출 (0) | 2023.10.23 |
[C#] 값 형식과 참조 형식 (1) | 2023.10.23 |
[C#] 일반화 프로그래밍 (제네릭/Generic) (1) | 2023.10.20 |