배열의 가장 큰 장점
"접근 속도가 빠르다"는 것.
하지만 치명적인 단점
은 "크기 변경이 불가능"하고 "데이터 추가/삭제에 많은 비용"이 든다.
따라서 배열의 장점은 가져가고 단점은 보완하는 ArrayList
를 많이 사용한다.
LinkedList 는 각 element를 Node
로 정의하고 각 Node는 다음 Node를 가리키는 참조값과 데이터
로 구성되어 있는 자료구조다.
따라서 데이터 추가/삭제
상황에서 다음 노드를 가리키는 참조값과 데이터만 바꾸어 연결
해주면 되므로 비순차적 데이터 추가/삭제/수정에 매우 유리한 성능을 보인다
.
그렇다면, 둘 중 어느 것을 써야 할까?
당연하겠지만 상황에 따라 다르다.
ArrayList
는 기본적으로 조회
에 강점이 있다. 따라서 데이터 추가/삭제가 많지 않고 조회가 많은 상황에서 사용하면 유리하다.
LinkedList
는 기본적으로 데이터 추가/삭제
에 강점이 있다. 따라서 데이터 추가/삭제가 빈번하게 일어나는 상황에서 사용하면 유리하다.