배열(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는 많은 요소를 저장할 때도 빠른 검색 성능을 제공합니다.