C# - Collection(컬렉션)

Dev_Jen
|2025. 7. 4. 10:17
반응형

✅ 컬렉션이란?

"여러 데이터를 하나로 묶어 저장할 수 있는 자료구조 클래스"
→ 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

https://dev-jen.tistory.com/entry/C-Queue%ED%81%90-vs-Stack%EC%8A%A4%ED%83%9D-%EB%A9%94%EB%AA%A8%EB%A6%AC%EA%B5%AC%EC%A1%B0

 

C# - Queue(큐) vs Stack(스택) + 메모리구조

✅ 핵심 차이 한 줄 요약자료구조개념큐(Queue)FIFO: 먼저 들어간 게 먼저 나온다 (First-In First-Out)스택(Stack)LIFO: 나중에 들어간 게 먼저 나온다 (Last-In First-Out)✅ 실생활 비유자료구조비유 예시Queue줄

dev-jen.tistory.com

 

반응형