✅ 컬렉션이란?
"여러 데이터를 하나로 묶어 저장할 수 있는 자료구조 클래스"
→ C#에서는 System.Collections, System.Collections.Generic 네임스페이스 아래에서 제공돼.
✅ 컬렉션의 종류 (중요한 것들만 정리)
분류 | 컬렉션 이름 | 특징 |
리스트 | List<T> | 가변 크기 배열, 가장 많이 사용 |
배열 | Array | 고정 크기, 가장 기본적 |
집합 | HashSet<T> | 중복 불가, 빠른 검색 |
딕셔너리 | Dictionary<TKey, TValue> | Key-Value 형태 저장 |
큐 | Queue<T> | FIFO(선입선출) |
스택 | Stack<T> | LIFO(후입선출) |
✅ 주요 컬렉션 설명
1. List<T>
List<int> numbers = new List<int>();
numbers.Add(1);
numbers.Add(2);
Console.WriteLine(numbers[0]); // 1
- 가변 크기
- Index 접근 가능
- 반복문에 자주 쓰임
2. Dictionary<TKey, TValue>
Dictionary<string, int> score = new Dictionary<string, int>();
score["철수"] = 95;
score["영희"] = 88;
Console.WriteLine(score["철수"]); // 95
- Key를 이용해 값(Value) 저장
- Key는 중복 불가
- 빠른 검색/삽입
3. HashSet<T>
HashSet<int> set = new HashSet<int>();
set.Add(1);
set.Add(1); // 중복 안 됨
Console.WriteLine(set.Count); // 1
- 중복 허용 안 함
- 리스트보다 검색이 빠름
4. Queue<T> (FIFO)
Queue<string> q = new Queue<string>();
q.Enqueue("첫 번째");
q.Enqueue("두 번째");
Console.WriteLine(q.Dequeue()); // 첫 번째
- 줄 서기처럼 먼저 넣은 게 먼저 나옴
5. Stack<T> (LIFO)
Stack<string> s = new Stack<string>();
s.Push("첫 번째");
s.Push("두 번째");
Console.WriteLine(s.Pop()); // 두 번째
- 쌓는 방식. 나중에 넣은 게 먼저 나옴
✅ 컬렉션 공통 기능
- Count : 요소 수
- foreach : 반복
- Contains() : 포함 여부
- Clear() : 초기화
- Remove() : 삭제
✅ 제네릭 vs 비제네릭 컬렉션
종류 | 설명 |
List<T>, Dictionary<TKey, TValue> 등 | 제네릭 컬렉션, 타입 안정성, 성능 우수 |
ArrayList, Hashtable 등 | 비제네릭 컬렉션, 구버전, object 기반이라 박싱/언박싱 발생 |
📌 지금은 거의 다 제네릭을 씀!
✅ 요약
컬렉션 | 특징 |
List<T> | 배열처럼 사용, 동적 크기 |
Dictionary<K,V> | Key-Value 쌍 저장 |
HashSet<T> | 중복 제거 |
Queue<T> | 선입선출 |
Stack<T> | 후입선출 |
❓
그럼 이제 궁금한게 배열, 리스트의 차이 그리고 큐와 스택의 차이가 궁금해졌습니다.
물론 큐와 스택은 FIFO, LIFO의 차이점을 잘 알고 있지만 한번 정리해보려구요!
배열, 리스트 / 큐, 스택 밑에 따로 정리해보겠습니다!
https://dev-jen.tistory.com/entry/C-List-vs-Array%EB%A6%AC%EC%8A%A4%ED%8A%B8-vs-%EB%B0%B0%EC%97%B4
C# - List vs Array(리스트 vs 배열)
✅ 리스트(List) vs 배열(Array) 핵심 차이 요약항목배열 (int[])리스트 (List)크기고정 (정적)가변 (동적)타입기본 자료형 (int[])제네릭 클래스 (List)기능제한적 (Add 불가)다양한 메서드 제공 (Add, Remove 등
dev-jen.tistory.com
C# - Queue(큐) vs Stack(스택) + 메모리구조
✅ 핵심 차이 한 줄 요약자료구조개념큐(Queue)FIFO: 먼저 들어간 게 먼저 나온다 (First-In First-Out)스택(Stack)LIFO: 나중에 들어간 게 먼저 나온다 (Last-In First-Out)✅ 실생활 비유자료구조비유 예시Queue줄
dev-jen.tistory.com
'C#' 카테고리의 다른 글
C# - Queue(큐) vs Stack(스택) + 메모리구조 (2) | 2025.07.04 |
---|---|
C# - List vs Array(리스트 vs 배열) (1) | 2025.07.04 |
C# - Object Type(오브젝트 타입) & Object Memori(오브젝트 메모리 설명) (3) | 2025.07.04 |
C# - Parent obj = new Child(); 메모리는 어떻게 될까? & 다형성 (1) | 2025.07.03 |
C# - base 키워드 (3) | 2025.07.03 |