배열
고정된 크기, 한 번 생성되면 크기 변경 불가능
메모리 사용 효율적
인덱스를 통한 빠른 접근 가능
List
제네릭 컬렉션
동적으로 크기 조절 가능
배열보단 성능면에선 떨어질 수 있음
ArrayList
비제네릭 컬렉션 (object 사용)
동적으로 크기 조절 가능
object형을 사용하므로 요소를 추가하거나 제거할 때 형변환 필요 - 성능 저하가 있을 수 있음
배열과 유사하게 인덱스로 요소에 접근 가능
- ArrayList 보단 사용할 수 있으면 List를 사용하는 것이 안전하고 효율적임
Dictionary
키-값 (각 키는 고유해야 함)
제네릭 컬렉션
동적으로 크기 조절 가능
특정 키에 대한 값을 빠르게 검색할 수 있음
Dictionary를 구현하는 법
키와 값의 형식을 지정해 선언합니다. Add메소드를 사용해 요소를 추가, Remove메소드를 사용해 요소를 지울 수 있습니다. ContainsKey나 ContainsValue로 해당하는 값이 존재하는지 확인할 수 있습니다. 또 KeyValuePair 구조체를 사용해 Dictionary를 순회할 수 있습니다.
Dictionary의 검색이 빠른 이유
내부적으로 해시 테이블을 사용하기 때문에 검색이 빠릅니다. 딕셔너리는 해당 키의 해시 코드를 기반으로 계산된 인덱스에 저장되며 그 Key값을 통해 검색하기 때문에 시간복잡도가 O(1)입니다.
Dictionary
Add메소드를 사용해 요소를 추가할 수 있음
Remove메소드를 사용해 지정된 키값에 해당하는 요소를 지울 수 있음
KeyValuePair구조체를 사용해 key와 Value를 모두 얻을 수 있음 (foreach문 등에서 유용하게 사용)
Keys속성을 통해 key값, Values속성을 사용해 Value값을 얻을 수 있음
DictionaryName[Key] 형식을 통해 Key에 대응되는 Value값을 얻을 수 있음
ContainsKey나 ContainsValue로 존재하는지 확인할 수 있음
'취준 > 기술면접' 카테고리의 다른 글
델리게이트 (delegate) (0) | 2024.02.01 |
---|---|
제네릭 (0) | 2024.01.30 |
가비지 컬렉터, 가비지 컬렉션 (0) | 2024.01.19 |
struct와 class (0) | 2024.01.17 |
접근제한자 (0) | 2024.01.17 |