배열(Array)이란?
- 배열(Array)은 동일한 데이터 형식(int면 int값, string이면 string값)이 순서대로 저장된 구조입니다.
- 배열은 고정된 크기를 가지며, 각 원소는 인덱스를 사용하여 접근할 수 있습니다.
흔히 쓰는 표현을 쓰자면, 고정된 크기란 방(Room)의 개수를 말합니다. 감옥의 독방같은 존재인겁니다.
배열이란 이름의 감옥이 있는데, 이곳은 같은 종류의 범죄를 저지른 사람만 들어올 수 있는 곳이고, 독방만 존재합니다.
출처: https://upload.wikimedia.org/wikipedia/commons/thumb/3/3f/Array1.svg/1920px-Array1.svg.png - 위 그림은 방이 10개짜리인 배열을 나타냅니다. 그러므로 최대 10개의 동일한 데이터 값이 들어갈 수 있습니다.
- 여러 개의 값을 하나의 변수에 저장하고 관리할 수 있습니다.
- 다음은 간단한 정수 배열을 선언하고 초기화하는 예제입니다.
int[] arr = new int[3];
arr[0] = 10;
arr[1] = 20;
arr[2] = 30;
▶ 이 배열은 0번부터 2번까지 총 3개의 방에 3개의 정수를 저장할 수 있습니다. 각 요소는 해당 인덱스를 사용하여 접근할 수 있습니다. 예를들어 arr[1]은 20을 나타냅니다.
- 또는 배열을 초기화와 함께 값을 할당 수도 있습니다.
int[] arr = { 10, 20, 30 };
▶ 배열은 크기가 고정되어 있다고 했습니다. 그래서 이 배열은 방이 3개로 고정되어 있습니다.
배열의 매서드와 속성!!
- 배열을 조작하고 다루기 위해 사용할 수 있는 여러 매서드와 속성이 있습니다. 다음은 배열과 관련된 일반적인 메서드와 속성들입니다.
1. Length 속성
- Length는 말그대로 길이를 나타냅니다. 배열의 길이는 방의 개수를 의미합니다.
int[] arr1 = new int[5];
int[] arr2 = { 10, 20, 30 };
int[] arr2Length = new int[arr2.Length];
Debug.Log(arr1.Length);
Debug.Log(arr2.Length);
Debug.Log("-----------");
Debug.Log(arr2Length.Length);
▶ arr1은 방이 5개인 배열이기 때문에 arr1.Length의 값은 5가 됩니다.
▶ arr2는 배열을 초기화와 동시에 3개의 값을 할당하였기에 arr2.Length의 값은 3이 됩니다.
▶ arr2Length는 arr2.Length 즉, arr2의 길이에 따른 방의 개수를 가진 배열이기에 arr2Length.Length의 값은 3이 됩니다. 이 배열은 arr2의 길이에 따라 변동됩니다.
2. IndexOf() 매서드
- IndexOf()는 특정 요소의 인덱스 즉, 특정 값이 들어있는 방의 번호를 알 수 있습니다.
int[] arr = { 10, 50, -2, 9, 100 };
int num = Array.IndexOf(arr, 9); //(배열, 찾고자하는 값)
Debug.Log(num);
3. Sort() 매서드
- 배열 속 원소의 값을 낮은 값에서 높은 값으로 즉, 오름차순으로 나열할 수 있습니다.
int[] arr = { 10, 50, -2, 9, 100 };
string[] strr = { "C", "b", "A", "a" };
Array.Sort(arr); //(오름차순을 하고자 하는 배열)
Array.Sort(strr); //문자열은 알파벳 순서대로(소문자가 먼저)
foreach (int num in arr)
{
Debug.Log(num);
}
foreach (string alphabet in strr)
{
Debug.Log(alphabet);
}
4. Reverse() 매서드
- Reverse()는 배열의 값을 역순으로 배치해줍니다.
int[] arr = { 10, 20, 30, 40, 50 };
string[] strr = { "b", "a", "n", "a", "n", "a" };
Array.Reverse(arr);
Array.Reverse(strr);
foreach (int num in arr)
{
Debug.Log(num);
}
foreach (string item in strr)
{
Debug.Log(item);
}
'C# > 자료구조 이해하기' 카테고리의 다른 글
C# 오름차순과 내림차순 정렬에 대해 알아보자! (0) | 2024.03.10 |
---|---|
C# List(리스트)에 대해 알아보자! (0) | 2024.03.10 |
C# Dictionary에 대해 알아보자! (0) | 2024.03.05 |
C# 스택(Stack)에 대해 알아보자! (0) | 2024.03.05 |
C# 큐(Queue)에 대해 알아보자! (0) | 2024.03.05 |