자바에서 ArrayList 와 LinkedList 는 둘 다 List 인터페이스를 구현한 클래스다.
💚 ArrayList
- 내부적으로 배열을 사용하여 요소를 저장한다. 요소들을 연속된 메모리 공간에 저장한다.
- 요소의 삽입과 삭제가 느리다. 중간에 요소를 삽입하거나 삭제할 경우 뒤따라오는 요소들을 이동시켜야 하기 때문이다.
- 요소의 접근과 갱신이 빠르다.
- 인덱스를 기반으로 한 작업에 유리하다.
💚 LinkedList
- 내부적으로 이중 연결 리스트를 사용하여 요소를 저장한다.
- 요소의 삽입과 삭제가 빠르다. 요소간의 링크만 수정하면 되기 때문이다.
- 요소의 접근과 갱신이 느리다.
- 인덱스를 기반으로 한 작업은 처음부터 해당 인덱스까지 선형탐색을 수행해야 하기 때문에 비효율적이다.
💚 결론
- 빠른 접근(참조)이 필요할 때는 ArrayList를 사용하고, 삽입 및 삭제가 자주 일어날 때는 LinkedList를 사용하자
'Programming > Java' 카테고리의 다른 글
[Java] 자바 네이밍 규칙(Java Naming Convention) (0) | 2023.08.03 |
---|---|
[Java] Map의 entrySet() 메서드 (0) | 2023.07.19 |
[Java] 자바 HashSet 정렬법 (0) | 2023.07.07 |
[Java] 자바 향상된 for문 (0) | 2023.06.30 |
[Java] 자바 Set(집합) 인터페이스 (0) | 2023.06.29 |
댓글