배열과 비슷한 자료구조형이지만 편리한 기능을 더 많이 가지고 있다.
Array(배열)과 달리 고정된 크기가 아니다
동적으로 자료형의 갯수가 변하는 경우
보통 interface 형태로 구현체를 사용한다
List 인터페이스를 구현한 자료형
Array의 크기 동적으로 변경
add
remove
get
size
contains
삽입 ,삭제 시 해당하는 인덱스의 뒤의 원소들이 1칸 씩 이동(앞, 뒤)한다
List 인터페이스를 구현한 자료형
노드간에 연결을 통해 리스트로 구현된 객체
다음 노드의 위치 정보를 가지고 있음
인덱스를 가지고 있지 않음
탐색 시 순차접근만 가능
추가/삭제는 위치정보의 수정만으로 가능하기 때문에 성능이 좋음
add, offer (IllegarStateException vs X)
remove, poll (NoSuchElementException vs Null)
element, peek (NoSucheElementException vs Null)
1) ArrayList는 인덱스를 통한 접근이 용이하지만 삽입, 삭제 시 원소들이 이동하므로 조회할 때 유리하고
2) LinkedList는 인덱스를 통한 접근이 별로이지만 삽입, 삭제는 위치정보의 수정만으로 가능하므로 데이터 교체가 빈번한 경우에 좋다