배열이란 특정타입의 변수 여러개를 쉽게 저장하고 관리할 수 있는 자료구조이다.
만약 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 |