Array는 동일한 자료형을 가진 데이터들을 메모리에 순차적이고 연속적으로 저장하는 자료구조입니다.
Array 특징
- Random Access방식으로 데이터 조회의 시간 복잡도가 O(1)
- 정적 메모리 할당 방식
- 컴파일 타임에 배열의 크기를 미리 할당
- 고정된 크기의 공간을 가짐
- 미리 공간을 할당하기 때문에 메모리 낭비 및 오버플로우 발생
Array 장단점
[장점]
데이터 조회가 빠름
[단점]
메모리 낭비 및 오버플로우가 발생
시간 복잡도
Array | |
access | O(1) |
Q. Array Size 넘어서 Data를 저장하려고 할 때 어떤 방법이 있을까요?
- Dynamic Array를 활용하여 기존 Size보다 큰 Array를 선언하고 데이터를 옮김
- Linked List를 활용하여 데이터가 추가될 때마다 메모리 공간 할당
-> 즉, List 자료구조를 사용해야함 (ex: ArrayList, LinkedList)
Java에서의 Array
int[] arr = new int[3]; // [0, 0, 0]
Kotlin Array
val arr = Array(3) { 0 } // [0, 0, 0]
// var arr = IntArray(3)
- Array로 배열 생성 가능
- IntArray, LongArray, BooleanArray 등으로 타입을 명시해서 사용 가능