Array
- 같은 자료형을 가진 변수를 하나로 표현한 것. 원시타입과 객체 모두 가질 수 있다.
- 연속된 메모리 공간이다. 그래서 각 데이터가 줄줄이 저장될 것이기 때문에 자료형을 미리 적어주어야 한다.
- 인덱스는 값에 대한 유일무이한 식별자
- 크기가 불변적
- 장점: 인덱스를 활용하여 빠르게 조회 가능
- 단점: 엘리먼트가 삭제되어도 빈 자리가 남는다. => 불필요한 메모리 차지
List
- 순서가 있는 데이터들의 모임
- 크기가 가변적
- Array의 단점을 보완한다. 불연속적인 메모리 공간 차지
- 리스트에서 인덱스는 몇 번째 데이터인가 정도의 의미
- ArrayList와 LinkedList가 있다.
ArrayList
- Array List는 배열을 이용해서 리스트를 구현한 것
- 데이터의 추가 => Array List는 내부적으로 데이터를 배열에 저장한다. 배열의 특성상 데이터를 리스트의 처음이나 중간에 저장하면, 이후의 데이터들이 한칸씩 뒤로 물러나야한다.
- 데이터의 삭제 => 삭제도 추가와 유사하게 빈자리가 생기면 빈자리를 채우기 위해서 순차적으로 한칸씩 땡겨야 한다.
- 데이터 조회(가져오기) =>인덱스를 이용하여 데이터를 가져오고 싶을 때 Array로 구현한 리스트는 속도가 매우 빠르다. (메모리 상의 주소를 정확하게 참고해서 가져오기 때문이다.)
장점 : 내부적으로 배열을 사용하기 때문에 인덱스를 이용해서 접근하는 것이 빠르다.
단점 : 데이터의 추가와 삭제가 느리다.
LinkedList
데이터의 추가/삭제가 빈번할 때