개발자의 생활

[ Kotlin ] 자료구조_LinkedList 본문

자료구조/Kotlin

[ Kotlin ] 자료구조_LinkedList

Developer성현 2025. 10. 4. 17:36

이번에는 이전에 올린 배열 ArrayList에 이어서 LinkedList를 소개하겠습니다.

 

 

C언어 자료구조 이중 연결 리스트

이번에는 자료구조 중 연결리스트를 c언어로 구현해 보겠습니다.연결리스트는 여러 방식이 있습니다. 하나씩 그림으로 알아보겠습니다. 1. 단일 연결리스트이 방식은 가장 단순하면서 구현하기

han-studio.tistory.com

LinkedList 도 C언어로 구현하는 글을 올렸습니다. 원리나 방식은 위 글에서 확인 해 주세요.

 

사실 Koltin 에서는 LinkedList를 제공하지 않습니다. 하지만 Java에서 구현되어 있는 LinkedList를

Koltin 도 JVM으로 컴파일하게 되면 Java와 동일한 JavaByteCode로 만들어지게 되니 Java에서 있는 모든 클래스, 메서드 등을 사용할 수 있습니다.

 

 

Kotlin 자료구조[배열]

자료구조_배열[ C언어 ]배열은 모든 언어에서 기본으로 제공되는 자료구조입니다.배열은 동일한 타입의 데이터를 연속적으로 순서대로 나열시킵니다.그럼 배열의 특징을 먼저 알아보겠습니다.

han-studio.tistory.com

그래서 LinkedList 의 사용방법은 위 블로그에 올린 ArrayList에

이전 글을 우려먹는 느낌이 없지 않아 있지만 실제로 구조와 사용방법이 동일하기 때문에 LinkedList 사용법을 한번더 작성하면 동일한 글이 됩니다. ***귀찮아서 그런것이 절대 아닙니다!...***

 

하지만 LinkedList와 List, MutableList의 관계를 설명드리겠습니다.

LinkedList 와 List, MutableList 관계

LinkedList은 Java에 있는 java.util.List <T> 인터페이스를 상속받아서 구현하고 있지만 Kotlin의 List, MutableList는 Kotlin 자체의 kotlin.collections.List 에 있는 인터페이스를 상속받고 있습니다.

즉 각각의 인터페이스 이름은 List 로 동일하지만 연관이 없다는 것입니다. 그런데 신기하게도 Java의 LinkedList과 Kotlin의 List, MutableList 은 서로 호환이 가능합니다.

 

어떻게 다르 인터페이스를 상속받아서 오버라이딩 하고 있는데 이들의 다형성이 유지되는것 일까요?

이유는 Kotlin 컴파일러의 "타입 매핑" 덕분 입니다.

Kotlin 코드가 컴파일되면 Kotlin의 List 가 아닌 Java의 List를 상속받는 코드로 변환이 되기 때문입니다.

 

 

 

이상으로 Kotlin에서의 LinkedList에 대해 알아보았습니다.

부족한 글을 읽어주셔서 감사드립니다.

'자료구조 > Kotlin' 카테고리의 다른 글

[ Kotlin ] 자료구조_배열  (0) 2025.10.01