연속적인 메모리 공간에 순차적으로 같은 타입의 데이터를 저장하는 자료구조.
인덱스로 접근가능하다.
int배열의 경우 연속적인 메모리 공간에 4byte씩 차지한다.
배열은 포인터이다. 즉, 배열은 메모리의 참조주소를 가리키며 index를 offset처럼 활용하여 다음 index의 데이터에 접근한다.
ex) 참조주소 + 자료형 크기 * 인덱스
★ 객체 배열의 경우 주소를 참조하는 레퍼런스들은 메모리에 순차적으로 존재하지만, 객체들은 메모리 공간에 비순차적으로 저장되어있다. 배열 아이템에 접근 시 레퍼런스가 참조하고 있는 메모리 주소값을 확인하여 메모리에서 아이템을 읽어온다.
연속된 메모리 공간에 데이터들을 저장하기 때문에 cpu cache를 통해 같은 배열에 있는 다른데이터에 접근하는 시간을 단축할 수 있다.
크기가 변할 수 있는 Array로써 데이터를 더하거나 빼는것이 가능한 자료구조이다.
@Java ArrayList
array의 크기보다 큰 데이터를 저장할 경우 기존 array보다 큰 배열을 생성하여
기존의 배열을 복사하고 추가적으로 데이터를 저장한다.
key-value pair들을 저장하는 ADT. 같은 key를 가지는 pair는 최대 한개만 존재한다.
@Java Map<k,V>