의문점 공부하기/📌 Java
📌 ArrayList와 LinkedList의 차이점은 무엇일까?
아리빠
2023. 6. 28. 19:18
ArrayList:
- 데이터를 배열로 관리
- 데이터의 추가, 삭제를 위해 임시 배열을 생성하고 데이터를 복사하는 방식을 사용
- 데이터는 인덱스를 가지고 있어 한 번에 참조가 가능하므로 검색에 유리
- 대량의 자료를 추가 또는 삭제하는 경우에는 데이터의 복사가 많이 일어나 성능 저하를 일으킬 수 있다
LinkedList:
- 데이터는 각각의 노드로 구성되며, 노드는 데이터와 다음 노드를 참조하는 포인터로 이루어져 있다
- 데이터의 추가, 삭제 시에는 이전 노드와 다음 노드의 참조만 변경하면 되므로 ArrayList에 비해 빠름
- 데이터의 검색 시에는 처음부터 노드를 순회해야 하므로 ArrayList에 비해 성능상 불리
▼
데이터의 추가, 삭제가 빈번하게 발생하는 경우에는 LinkedList를 사용하는 것이 유리
데이터의 검색이 주로 이루어지는 경우에는 ArrayList를 사용하는 것이 유리
데이터의 동기화가 필요한 경우에는 Collections 클래스를 사용하여 동기화된 List를 생성할 수 있다