Kotlin 콜랙션(Collection)

Java에는 컬렉션 프레임워크가 있는 것처럼 Kotlin에도 컬렉션 프레임워크가 있다. Kotlin의 컬렉션 프레임워크는 읽기만(read-only,immutable) 가능한 컬렉션과 읽기/쓰기(mutable, read/write)가 가능한 컬렉션이 있다.

Collection & MutableCollection

kotlin.collection.Collection 인터페이스이다.

interface Collection<out E> : Iterable<E>

E는 Collection의 요소이다. 이 인터페이스는 읽기만 지원한다.

읽기/쓰기는 MutableCollection 인터페이스에서 지원한다.

interface MutableCollection<E> : Collection<E>, MutableIterable<E>

ECollection의 요소아다.

List & MutableList

List 인터페이스는 Collection 인터페이스를 상속하고 있다.

interface List<out E> : Collection<E>

ECollection의 요소이다. 이 인터페이스는 List의 읽기만 지원한다.

읽고 쓰기는 MutableList 인터페이스에서 지원한다.

interface MutableList<E> : List<E>, MutableCollection<E>

E는 컬렉션의 요소. 요소 추가/삭제 기능을 제공하는 인터페이스.

배열 및 목록 생성

배열은 Array 클래스으로 인스턴스를 생성한다. 다음과 같은 형식으로 배열을 만든다.

Array<타입명>(요수 갯수) {초기 처리}

List<타입명>(요수 갯수) {초기 처리}

간단한 구현 예제를 보도록 하겠다.

fun main() {
    val evenNumbers = Array(10) { it * 2 }

    for (n in evenNumbers) {
        println(n)
    }
}

Output:

0
2
4
6
8
10
12
14
16
18

위 예제는 짝수를 선언하고 있다.

생성 표준 라이브러리

array, listOf, arrayListOf, linkedListOf 배열 및 목록 선언은 코틀린 표준 라이브러리로 다음 함수를 제공한다.

  • arrayOf
    • Array 인스턴스를 간편하게 생성한다.
  • listOf:
    • java.util.List를 생성한다.
    • 요소를 변경할 수 없다.
  • arrayListOf
    • java.util.ArrayList 인스턴스를 생성한다.
    • Java와 마찬가지로 추가, 삭제 등이 가능하다.
  • linkedListOf
    • java.util.LinkedList 인스턴스를 생성한다.
    • Java와 마찬가지로 추가, 삭제 등이 가능하다.
val oddNumbers = arrayOf(1, 3, 5, 7, 9)
val list = listOf(1,2,3,4,5)
val arrayList = arrayListOf(1,2,3,4,5)
val linkedList = linkedListOf(1,2,3,4,5)

참조




최종 수정 : 2024-09-15