개발자의 생활

[ Kotlin ] 자료구조_배열 본문

자료구조/Kotlin

[ Kotlin ] 자료구조_배열

Developer성현 2025. 10. 1. 16:48
 

자료구조_배열[ C언어 ]

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

han-studio.tistory.com

이전에 C언어로 배열을 사용해서 삽입, 삭제, 검색, 갱신 기능을 구현해 본 적이 있습니다.

 

하지만 Kotlin 은 이러한 기능을 다양한 방식으로 제공하고 있기 때문에 구현할 필요가 없습니다.

그럼 어떤 방식이 있는지 그리고 각각의 특성을 알아 보겠습니다.

 

 

1. MutableList

MtableList는 가변 리스트로 데이터 삽입, 삭제, 검색, 갱신 등 의 기능이 내부적으로 구현되어 있습니다.

val myMutableList: MutableList<Int> = mutableListOf(0, 1, 2)
val myMutableList: MutableList<Int> = MutableList<Int>(5){index: Int -> index + 1 }
val myMutableList: MutableList<Int> = MutableList<Int>(5){0}

 

이렇게 mutableListOf를 사용해서 초기 리스트 값을 지정할 수도 있고 MutableList를 사용해서 리스트의 초기 길이와 초기값을 조건이나 규칙을 따라 지정할 수도 있습니다.

 

MutableList 는 사실 MutableList 인터페이스 형태의 반환타입을 가지고 있지만 사실은 ArrayList를 반환하고 있습니다.

 

본격적으로 삽입, 삭제, 갱신, 검색 기능을 알아보겠습니다.

fun add(element: E): Boolean
fun add(index: Int, element: E): Unit
fun addAll(elements: Collection<E>): Boolean
fun addAll(index: Int, elements: Collection<E>): Boolean
fun remove(element: E): Boolean
fun removeAt(index: Int): E
fun removeAll(elements: Collection): Boolean
operator fun set(index: Int, element: E): E
operator fun get(index: Int): E

위 메서드 들은 MutableList 인터페이스에 정의되어 있는 기능들입니다. 

 

fun indexOf(element: @UnsafeVariance E): Int
fun lastIndexOf(element: @UnsafeVariance E): Int
fun contains(element: @UnsafeVariance E): Boolean
fun containsAll(elements: Collection<@UnsafeVariance E>): Boolean
fun clear(): Unit

위 메서드 들은 List 인터페이스에 정의되어 있는 기능들입니다.

 

public interface MutableList<E> : List<E>, MutableCollection<E> {
    .
    .
    .
}

MutableList는 List 인터페이스를 상속받고 있기 때문에 사용이 위 메서드 들도 사용이 가능합니다.

 

기능이 많이 있지만 메서드명과 반환타입을 통해 충분히 기능을 유추할 수 있기 때문에 사용법은 작성하지 않겠습니다.

 

2. List

List는 불변(immutable) 리스트입니다. 즉 초기에 담은 요소는 삽입, 삭제, 갱신 은 못 하고 검색만이 가능한 리스트 입니다.

val myList: List<Int> = listOf(0, 1, 2)
val myList: List<Int> = List<Int>(5){index: Int -> index + 1}

 

불변 리스트도 MutableList처럼 다양한 방식으로 초기값을 지정할 수 있으며 MutableList에서 지원하는 검색 기능들은 모두 동일하게 사용이 가능합니다.

 

이상으로 이번에는 코틀린에서 Array을 사용하여 이미 구현되어 있는 List, MutableList에 대해 알아보았습니다.

 

 

 

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

[ Kotlin ] 자료구조_LinkedList  (0) 2025.10.04