C# 질문 리스트 - 배열과 List, ArrayList, Dictionary 의 차이점

김건호·2024년 2월 1일
0

기술면접

목록 보기
4/5
  1. (꼬리질문) Dictionary는 어떻게 구현해야 하나요?
  2. (꼬리질문) Dictionary 검색이 빠른 이유는 무엇인가요?

배열(Array):

고정된 크기의 연속된 메모리 공간에 데이터를 저장합니다.
한 번 생성되면 크기를 변경할 수 없습니다.
인덱스를 사용하여 요소에 접근할 수 있으며, 데이터에 대한 빠른 접근이 가능합니다.
일반적으로 같은 데이터 형식의 요소를 저장합니다.

List:

동적으로 크기가 조정되는 배열로, 필요에 따라 요소를 추가하거나 제거할 수 있습니다.
제너릭 형식으로 정의되어 있어 같은 데이터 형식의 요소만 저장할 수 있습니다.
배열과 마찬가지로 인덱스를 사용하여 요소에 접근할 수 있습니다.
리스트의 크기를 동적으로 조정할 수 있어 편리하지만, 삽입이나 삭제 시에는 데이터를 복사해야 하는 경우가 있어 배열보다 성능이 떨어질 수 있습니다.

ArrayList:

제너릭이 아닌 비제너릭 형태로, 어떤 형식의 객체도 저장할 수 있습니다.
요소의 추가, 제거, 삽입 등의 작업을 유연하게 할 수 있습니다.
내부적으로 object 형식을 사용하므로 형식 변환에 따른 오버헤드가 발생할 수 있습니다.

Dictionary:

키-값(key-value) 쌍을 저장하는데 사용되는 데이터 구조입니다.
각 키는 유일해야 하며, 키를 사용하여 값을 검색하거나 저장합니다.
키와 값은 제너릭 형식으로 정의되어 있어 각각의 데이터 형식을 지정할 수 있습니다.


Dictionary 구현 방법:
C#에서 Dictionary는 System.Collections.Generic 네임스페이스에 포함되어 있습니다.
Dictionary를 사용하려면 해당 네임스페이스를 참조해야 합니다.

using System.Collections.Generic;

Dictionary<string, int> myDictionary = new Dictionary<string, int>();
myDictionary.Add("key1", 10);
myDictionary.Add("key2", 20);
int value = myDictionary["key1"]; // value에는 10이 저장됨

Dictionary 검색 속도:
Dictionary는 해시 테이블을 기반으로 구현되어 있으며, 해시 함수를 사용하여 각 요소에 대한 고유한 인덱스를 생성합니다.
이로 인해 특정 키에 대한 검색이 매우 빠르게 수행됩니다.
따라서 Dictionary는 많은 요소를 저장할 때도 빠른 검색 성능을 제공합니다.

profile
콜라게임

0개의 댓글

관련 채용 정보