2020. 1. 13. 01:32ㆍStudy
LinkedList와 ArrayList는 모두 Java에서 제공하는 List 인터페이스를 구현한 Collection 구현체입니다.
인터페이스만 같을 뿐 내부 동작방식은 다릅니다.
ArrayList
- 무작위접근(random access)이 가능합니다.
- n개의 자료를 저장할때 ArrayList는 자료들을 하나의 연속적인 묶음으로 저장합니다.
- 삽입 시 사이즈를 늘려주는 연산이 발생됩니다.
- 삭제 시 빈 인덱스를 채워야 하기 때문에 연산이 발생됩니다.
- 지속적으로 삭제 되는 과정에서 공간만큼 낭비되는 메모리가 많습니다.
- 삽입 삭제가 빈번하게 발행하는 프로세스의 경우 좋지 않습니다.
LinkedList
- 순차접근(sequential access)만 가능합니다.
- n개의 자료를 저장할때 자료들을 저장공간에 불연속적인 단위로 저장
- 인스턴스의 주소만 서로 연결시켜 주면 되기 때문에 추가 삭제가 매우 빠릅니다.
- 메모리 곳곳에 저장되어 있는 노드들을 접근하는데 시간 소모가 많습니다.
- LinkedList는 참조자를 위해 추가적인 메모리를 할당해야합니다.
- 단방향성을 갖고 있어 인덱스를 이용해 자료를 검색하는 애플리케이션에 적합하지 않습니다.
- 삽입삭제가 빈번하게 발생되는 프로세스의 경우 사용하기 좋습니다.
요약
데이터 검색이 빈번한 경우 ArrayList 를 사용하는 것이 좋습니다.
삽입 및 삭제가 빈번한 경우 LinkedList 를 사용하는 것이 좋습니다.
'Study' 카테고리의 다른 글
POJO Class란 무엇일까? (0) | 2020.03.09 |
---|---|
synchronized란 무엇일까? (0) | 2020.02.14 |
Process 와 Thread의 차이 (0) | 2019.12.03 |
BufferedReader 와 BufferedWriter (0) | 2019.10.29 |
StringBuffer란 무엇일까? (0) | 2019.10.29 |