순차적으로 데이터를 저장하는 자료 구조
- Array의 가장 큰 특징은 순차적(ordered)으로 데이터를 저장한다는 점이다.
- 자료구조에 저장하는 데이터는 일반적으로 요소(element)라고 한다.
- Array는 주로 서로 연결된 데이터들을 순차적으로 저장할 때 사용한다
- 순서가 상곤없더라도 서로 연결된 데이터들을 저장할 때 사용된다.
삽입(insertion)순서대로 저장된다.
이미 생성된 리스트도 수정 가능(mutable)
동일한 값도 여러번 삽입 가능
Multi-dimentional Array(다중차원 배열)
0부터 시작하며 마이너스 부호를 가가질 수도 있다.
마이너스 index는 맨 마지막 요소부터 시작한다.
예를 들어 -1은 맨 마지막 요소이다.그건 바로 실제 메모리 상에서, 즉 물리적으로 데이터가 순차적으로 저장되기 때문이다.
배열은 메모리가 순차적으로 채워지기 때문에 배열이 처음 생성될 때 어느 정도 메모리를 미리 할당한다.
이를 전문 용어로 pre-allocation
이라고 한다.
메모리를 pre-allocation 함으로써 새로 추가되는 요소들도 순차적으로 메모리에 저장될 수 있다.
하지만 요소들이 처음 할당한 메모리 이상으로 많아진다면 resizing이 필요하다.
즉, 메모리를 더 할당해야 한다.
그리고 추가적으로 할당된 메모리 또한 순차적이어야 한다.
그럼으로 배열의 resizing은 상대적으로 오래걸리는 operation다.
그렇기 때문에 Array 는 사이즈 예측이 잘 안 되는 데이터를 다루기에는 적절치 않다.
일반적으로 대부분의 언어에서는 배열의 메모리 pre-allocation과 resizing을 자동으로 실행한다. 하지만 이러한 점을 알고 있어야 사이즈가 급격하게 자주 늘어날 확률이 있는 데이터는 array 말고 더 적합한 자료구조를 선택해야 한다는 것을 알 수 있다.