Collections
의 List 인터페이스
와 Deque 인터페이스
를 상속받는다.UnSynchronized
하다.멀티 쓰레드 환경에서 사용하면 원하는 결과와 다른 결과를 얻을 수 있다 (thread-safe 하지 않다)
class Node {
Node next; // 다음 노드의 주소
Object object; // 데이터 값
}
doubly linked list
이다. 자바에서 제공하는 LinkedList는 doubly linked list
이다.class Node {
Node next; // 다음 노드의 주소
Node previous; // 이전 노드의 주소
Object object; // 데이터 값
}
참조하는 주소만 앞뒤로 바꿔주면 된다.
참고 ) ArrayList는 중간에 데이터 추가, 삭제 시 기존 데이터의 복사가 일어나서 느리다.
데이터가 연속적으로 저장되어 있지도 않고, 저장 위치가 각 노드에 있으므로, 인덱스 탐색이라고 할지라도 순차적으로 일어나게 된다.
참고 ) ArrayList는 인덱스 * 데이터크기 = 저장위치 로 탐색이 빠르다.
데이터의 추가 삭제가 순차적으로 이루어지고(add, remove만 사용), 탐색이 잦은 경우 : ArrayList
데이터를 인덱스로 접근해서 수정하는 경우가 많은 경우 : LinkedList