1. 스택 (Stack)
- 후입선출(LIFO) 구조로 가장 최근에 추가된 요소가 가장 먼저 제거된다.
- C#에서는 System.Collections.Generic 네임스페이스의 Stack<T> 클래스를 사용하여 구현할 수있다.
▶ 선언
Stack <int> stack = new Stack <int> ( );
▶ 내장 메서드
1) Push : 스택에 요소를 추가한다.
2) Pop : 스택에서 가장 최근에 추가된 요소를 제거하고 반환한다.
3) Peek : 스택에서 가장 최근에 추가된 요소를 제거하지 않고 반환한다.
4) Count : 스택에 저장된 요소의 개수를 반환한다.
5) Clear : 스택을 비운다.
2. 큐 (Queue)
- 선입선출(FIFO) 구조로 가장 먼저 추가된 요소가 가장 먼저 제거된다.
- C#에서는 System.Collections.Generic 네임스페이스의 Queue<T> 클래스를 사용하여 구현할 수 있다.
▶ 선언
Queue <int> queue = new Queue <int> ( );
▶ 내장 메서드
1) Enqueue : 큐에 요소를 추가한다.
2) Dequeue : 큐에서 가장 먼저 추가된 요소를 제거하고 반환한다.
3) Peek : 큐에서 가장 먼저 추가된 요소를 제거하지 않고 반환한다.
4) Count : 큐에 저장된 요소의 개수를 반환한다.
5) Clear : 큐를 비운다.
3. 딕셔너리 (Dictionary)
- 키-값 쌍으로 데이터를 저장하고 검색하는 데 사용되는 자료구조이다.
- C#에서는 System.Collections.Generic 네임스페이스의 Dictionary<TKey,TValue> 클래스를 사용하여 구현할 수 있다.
- 키를 기반으로 값을 빠르게 찾을 수 있는 '해시테이블'을 이용하여 구현된다.
▶ 선언
Dictionary <string, int> dict = new Dictionary <string, int> ( );
▶ 특징
- 딕셔너리의 키는 중복될 수 없다.
- 저장된 데이터의 순서를 보장하지 않는다.
- 딕셔너리[키]로 값에 접근
▶ 내장 메서드
1) Add(키,값) : 딕셔너리에 키-값 쌍을 추가한다.
2) Remove(키) : 해당 키에 연관된 키-값 쌍을 제거한다.
3) ContainsKey(키) : 해당 키가 딕셔너리에 존재하는지 확인한다.
4) ContainsValue(값) : 해당 값이 딕셔너리에 존재하는지 확인한다.
5) Count : 딕셔너리에 포함된 키-값 쌍의 개수를 반환한다.
6) Clear : 딕셔너리를 비운다.
7) Keys : 딕셔너리의 모든 키를 나타내는 컬렉션을 반환한다.
8) Values : 딕셔너리의 모든 값을 나타내는 컬렉션을 반환한다.
4. 해시테이블 (Hash Table)
- 키-값 쌍으로 데이터를 저장하고 검색하는 데 사용되는 자료구조이다.
- C#에서는 System.Collections.Generic 네임스페이스의 Hashtable 클래스를 사용하여 구현할 수 있다.
▶ 선언
Hashtable hashtable = new Hashtable( );
▶ 특징
- 각 키는 고유한 '해시코드'를 가지며 이 해시코드를 사용하여 값을 저장하고 검색한다.
- 해시테이블은 동적으로 크기를 조정할 수 있다.
- 사용자 정의 해시함수를 지정할 수 있다.
▶ 내장 메서드
1) Add(키,값) : 해시테이블에 키-값 쌍을 추가한다.
2) Remove(키) : 해당 키에 연관된 키-값 쌍을 제거한다.
3) ContainsKey(키) : 해당 키가 해시테이블에 존재하는지 확인한다.
4) ContainsValue(값) : 해당 값이 해시테이블에 존재하는지 확인한다.
5) Count : 해시테이블에 포함된 키-값 쌍의 개수를 반환한다.
6) Clear : 해시테이블를 비운다.
7) Keys : 해시테이블의 모든 키를 나타내는 컬렉션을 반환한다.
8) Values : 해시테이블의 모든 값을 나타내는 컬렉션을 반환한다.
※ 딕셔너리와 해시테이블의 차이점
1) 형식 안전성
- 딕셔너리는 제네릭 타입을 사용하여 키와 값의 형식이 컴파일 시 검사된다.
- 해시테이블은 object 타입을 사용하여 런타임에 형식 오류가 발생할 수 있다.
2) null
- 딕셔너리는 키와 값에 null이 허용되지 않는다.
- 해시테이블은 키와 값 모두 null이 허용된다.
'✏️ 이론 > C#' 카테고리의 다른 글
| 델리게이트 (Delegate), 이벤트 (Event) (0) | 2023.12.05 |
|---|---|
| [ C# ] Object 타입, 박싱, 언박싱 (0) | 2023.09.05 |
| [ C# ] Virtual, Abstract, Interface (0) | 2023.09.04 |
| [ C# ] 자료구조 (Array, List, ArrayList) (0) | 2023.09.04 |
| [ C# ] 메모리 영역 (0) | 2023.03.25 |