1. 배열
같은 데이터 타입의 변수를 여러 개 저장할 수 있는 데이터 타입이다.
예를 들어서 1부터 100까지의 숫자를 변수로 저장하려고 한다면 100개의 변수가 필요하지만, 배열을 사용하게 되면 한 개의 변수에 100개의 데이터를 넣을 수 있다.
쉽게 생각하면 각각의 방이 길게 이어져 있고, 각각의 방 안에 원하는 값을 넣는다고 생각하면 된다.
2. 배열의 선언 및 초기화
선언 : 데이터 타입[] 배열 이름; ex) int[] number;
초기화 : 배열 이름 = new 데이터 타입[크기]; ex) number = new int[99];
한 줄로 선언 및 초기화 : 데이터 타입[] 배열이름 = new 데이터 타입[크기]; ex) int[] number = new int[99];
배열을 사용할 때 알면 좋은 점
- 반드시 크기를 지정해야 한다는 것이다. (방의 개수를 정해줘야 한다.)
- index는 0부터 시작한다.
- index를 사용하여 원하는 위치에 접근 가능하다.
ex) number 배열 변수에 1부터 100까지 차례대로 넣었다고 가정했을 때, index는 0번부터 시작하므로 number[98] -> 99를 저장하고 있다.
- 배열을 각각 출력하거나 각각의 데이터들을 이용해서 비교하고 싶으면 for문을 사용하면 편하다.
- 배열 이름.Length = 배열의 총 개수 (for문에서 범위 부분 설정할 때 많이 사용함.)
3. 리스트
List는 가변적인 크기를 갖는 배열이다. 즉 크기를 미리 정해주지 않아도 된다.
형식 : List<데이튜 타입> 리스트 이름 = new List<데이터 타입>(); ex) List<int> numbers = new List<int>();
추가 : 리스트 이름.Add(데이터); ex) numbers.Add(1);
삭제 : 리스트 이름.Remove(데이터); ex)numbers.Remove(1);
리스트를 사용할 때 알면 좋은 점
- 리스트도 마찬가지로 배열이므로 원하는 값을 찾을 때는 리스트 이름[인덱스]로 사용한다.
- 추가 할 때마다 방이 생기는 구조이다. ex) Add를 한 번 할 때마다 index는 0부터 시작해서 점점 커진다.
- 중간에 있는 값을 삭제하게 되면 index 값도 줄어든다.
ex) numbers.Add(3); numbers .Add(2); numbers .Add(1);
총 3번을 추가하면 numbers[0] = 3, numbers[1] = 2, numbers[2] = 1 이 들어가게 되며, 3의 크기를 가진 배열이 된다.
여기서 numbers.Remove(2)로 중간 값인 numbers[1]에 해당하는 값을 지워주면 numbers[0] = 3, numbers[1] = 1이 된다.
즉, List에 많이 추가한 뒤에 삭제하게 되면 index 값이 변한다는 것도 생각해야 한다.
4. 배열과 리스트의 차이
메모리 사용량 증가 : 리스트는 동적으로 크기를 조정하므로 배열보다 많은 메모리를 사용한다.
데이터 접근 시간 증가: 리스트는 연결 리스트로 구현되기 때문에, 인덱스를 이용한 데이터 접근이 배열보다 느리다.
코드 복잡도 증가 : 리스트는 동적으로 크기를 조정할 수 있기 때문에 데이터 추가, 삭제 등의 작업이 배열보다 간편하지만 이러한 유연성은 코드 복잡도를 증가시킬 수 있다.
초기 크기를 정하기 어려울 때 List를 사용하게 되면 편할 것 같지만서도 장단점이 분명 존재하는 것 같다.
그렇기에 데이터의 크기와 사용 목적을 고려해서 배열과 리스트 중에 적절한 것을 선택해야 할 필요가 있다.
'내배켐 Unity TIL' 카테고리의 다른 글
Unity 10일차 TIL - 델리게이트(Delegate), 람다(Lamda) (0) | 2024.04.25 |
---|---|
Unity 9일차 TIL - Class (0) | 2024.04.23 |
Unity 4일차 TIL - Unity 광고 안드로이드 적용 시 오류 수정 (1) | 2024.04.18 |
Unity 3일차 TIL - 영어 타자 연습 (0) | 2024.04.17 |
Unity 2일차 TIL - Unity 광고 붙이기 (0) | 2024.04.17 |