개발햄비

[Java]ArrayLiist와 LinkedList 의 차이 본문

개발/java

[Java]ArrayLiist와 LinkedList 의 차이

개발햄 2019. 1. 9. 22:25



안녕하세요 ! 오늘은


ArrayLiist와 LinkedList 의 차이를 알아보려 합니다.



ArrayList




ArrayList는 내부적으로 데이터를 배열에서 관리하며 데이터에 인덱스가 존재하여 데이터의 검색에 유리합니다.



LinkedList


LinkedList는 인덱스가 없지만 데이터의 추가와 삭제에 유리합니다 . 

하지만 인덱스가 없어 데이터 조회에 있어서 모든 데이터를 순차적으로 조회하기 때문에 

조회성능은 좋지 않습니다.



결론

검색

데이터 검색 시에는 ArrayList는 LinkedList에 비해 굉장히 빠릅니다.

ArrayList는 인덱스 기반의 자료 구조이며 get(int index) 를 통해 검색이 쉽지만

그에 비해 LinkedList는 검색 시 모든 요소를 탐색해야 하기 때문에 성능이 좋지 못합니다.

삽입, 삭제

LinkedList에서의 데이터의 삽입, 삭제 시에는 ArrayList와 비교해 굉장히 빠른데, LinkedList는 이전 노드와 다음 노드를 참조하는 상태만 변경하면 되기 때문입니다. 

반면 ArrayList의 경우 삽입, 삭제 이후 다른 데이터를 복사해야 하기 때문에 LinkedList보다는 좋지 못합니다.