- 리스트 타입의 종류
List :
변경이 불가능한 리스트입니다.
MutableList :
MutableList 는 Kotlin 의 인터페이스로, 변경 가능한 리스트를 나타냅니다.
반대되는 개념으로는, 변경이 불가능한 그냥 List 타입이 있습니다.
이는 인터페이스이므로 특정한 구현체에 의존하지 않으며, 여러 구현체가 존재할 수 있습니다.
대표적인 구현체로는 ArrayList 와 LinkedList 등이 있습니다.
만약 mutableListOf() 함수로 객체를 초기화 한다면 ArrayList 가 생성될 것입니다.
ArrayList :
MutableList 의 일종입니다.
내부적으로 배열을 사용하여 요소를 저장하는 리스트 구현체로,
ArrayList 는 O(1) 시간 복잡도로 인덱스 기반 접근이 가능하므로,
리스트의 요소를 자주 조회해야 한다면 ArrayList 가 적합합니다.
또한, 순서가 보장되므로 리스트의 끝에 요소를 추가하거나 삭제하는 작업도 매우 효율적입니다.
반면 리스트의 중간에서 요소를 추가하거나 삭제할 때는 **O(n)**의 시간 복잡도가 발생합니다.
LinkedList :
MutableList 의 일종입니다.
자료구조 중 LinkedList 와 동일하며, 장단점은 ArrayList 와 상반됩니다.
리스트의 처음이나 중간에서 요소를 삽입하거나 삭제하는 작업이 O(1) 시간 복잡도로 빠르며,
인덱스 기반 접근이 O(n) 시간 복잡도를 가지므로, 자주 인덱스 기반 접근을 해야 한다면 비효율적입니다.
'Programming > ETC' 카테고리의 다른 글
[Java] JNI 정리 및 개발 방식 정리 (2) | 2024.10.13 |
---|---|
[Java] 자바를 사용한 병렬 프로그래밍 정리와 synchronized, volatile 설명 (0) | 2024.10.13 |
Docker 컨테이너 안에서 Docker 사용하기 (Windows, Linux, MacOS) (5) | 2024.10.12 |
서버 모니터링 시스템 Docker 로 구성하기(Grafana, Prometheus, Loki, Promtail, Springboot) (4) | 2024.10.06 |
JVM 메모리 누수 방지를 위한 체크사항 (5) | 2024.09.29 |