의문점 공부하기/📌 Java

📌 ArrayList와 LinkedList의 차이점은 무엇일까?

아리빠 2023. 6. 28. 19:18

ArrayList:

- 데이터를 배열로 관리
- 데이터의 추가, 삭제를 위해 임시 배열을 생성하고 데이터를 복사하는 방식을 사용
- 데이터는 인덱스를 가지고 있어 한 번에 참조가 가능하므로 검색에 유리
- 대량의 자료를 추가 또는 삭제하는 경우에는 데이터의 복사가 많이 일어나 성능 저하를 일으킬 수 있다


LinkedList:

- 데이터는 각각의 노드로 구성되며, 노드는 데이터와 다음 노드를 참조하는 포인터로 이루어져 있다
- 데이터의 추가, 삭제 시에는 이전 노드와 다음 노드의 참조만 변경하면 되므로 ArrayList에 비해 빠름
- 데이터의 검색 시에는 처음부터 노드를 순회해야 하므로 ArrayList에 비해 성능상 불리

 



데이터의 추가, 삭제가 빈번하게 발생하는 경우에는 LinkedList를 사용하는 것이 유리
데이터의 검색이 주로 이루어지는 경우에는 ArrayList를 사용하는 것이 유리
데이터의 동기화가 필요한 경우에는 Collections 클래스를 사용하여 동기화된 List를 생성할 수 있다