C#

배열, List, Dictionary

게임만드는학생 2025. 1. 19. 22:24

배열이란 특정타입의 변수 여러개를 쉽게 저장하고 관리할 수 있는 자료구조이다. 

 

만약 int 변수 20개를 사용해야한다고 가정해보자.

int a1;
int a2;
int a3;
.
.
.
int a20;

일일이 이렇게 선언하고 값을 수정할 때도 20번을 이렇게 타이핑해야한다. 

 

이럴 때 배열을 사용한다.

int[] arr = new int[20];

// int[] arr = new int[20]{1, 2, 3, 4,....20};
// int[] arr = new int[]{1, 2, 3, 4,....20};
// int[] arr = {1, 2, 3, 4,....20};

배열을 초기화하는 방법은 이렇게 4가지이다. 

이렇게 한번에 여러개의 변수를 관리가능하며, 이는 반복문을 통해 쉽게 수정 및 접근이 가능하게 된다. 

 

다음은 다차원 배열이다. 주로 2차원 배열까지만 사용되는데, 

int[,] arr = new int[2,3];

이렇게 초기화할 수 있다. 

이 뜻은 int[3] 짜리가 2개 만들어진다는 것이다. 

arr[1,0] = 1;

위처럼 접근한다. 

 

그리고 총 몇개의 배열을 만들건지만 정하고 배열 각각의 크기는 나중에 정할 수도 있다.

int[][] arr = new int[3][];

arr[0] = new int[5];
arr[1] = new int[4];
arr[2] = new int[3];

위처럼 사용할 수도 있다.

 

그런데 이런 배열은 크기를 미리 정해놓기 때문에 만약 너무크거나 작게 잡으면 문제가 발생할 수 있다.

따라서 가변적으로 동작하면 최적화를 할 수 있게되는데 이것이 List라는 자료구조다. 

 

List<int> list = new List<int>();

list.Add();
list.Remove();
list.Insert();
list.Clear();

다음과 같이 사용하며, 여러가지 함수가 구현되어있다. 

하지만 List는 동적배열이기 때문에, 삽입 삭제는 조금 비효율적이다. 

 

다음은 사전이라는 자료구조이다. 

C#에서는 Dictionary라고 한다. 

<key, value> 의 구조로 key를 통해 O(1)의 속도로 값을 찾을 수 있다. 

Dictionary<int, string> dic = new Dictionary<int, string>();

dic.Add(1,"Park");
dic[2] = "Kim";

이런식으로 추가를 할 수 있다. 

'C#' 카테고리의 다른 글

인터페이스 ( Interface )  (0) 2025.01.19
일반화 ( Generic )  (0) 2025.01.19
클래스의 특징  (0) 2025.01.19
클래스와 static 키워드  (0) 2025.01.19
클래스 기초  (0) 2025.01.19