자바 개발자를 위한 코틀린 입문 - 14. 코틀린에서 컬렉션을 다루는 방법


자바 개발자를 위한 코틀린 입문 에 강의 내용을 정리한 내용이다.
코틀린에서 컬렉션을 다루는 방법에 대해서 설명한다.

Collection

가변(Mutable) 컬렉션은 컬렉션에 elemendt를 추가, 삭제할 수 있다.
불변 컬렉션은 element를 추가, 삭제할 수 없다.

List

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// 불변
val numbers = listOf(100, 200)
// 가변
val numbers = mutableListOf(100, 200)
numbers.add(300)

val emptyList = emptyList<Int>()

// 값 출력
println(numbers[0])

// For Each
for (number in numbers) {
println(number)
}

// 전통적인 for문
for ((index, number) in numbers.withIndex()) {
println("$index $number")
}

Set

Set은 List와 다르게 순서가 없고, 값은 element는 하나만 존재할 수 있다
자료구조적 의미만 제외하면 모든 기능은 List와 비슷하다.

1
2
3
4
// 불변
val numbers = setOf(100, 200)
// 가변
val mutableNumbers = mutableSetOf(100, 200)

Map

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// Map
val map = mutableMapOf<Int, String>()
map[1] = "MONDAY"
map[2] = "SUNDAY"

mapOf(1 to "MONDAY", 2 to "SUNDAY")

// for
for (key in map.keys) {
println(key)
println(map[key])
}

for ((key, value) in map.entries) {
println(key)
println(value)
}

컬렉션의 null 가능성

  • List<Int?>: 리스트에 null 들어갈 수 있지만, 리스트는 절대 null이 아님
  • List?: 리스트에 null 들어갈 수 없지만, 리스트는 절대 null일 수 있음
  • List<Int?>?: 리스트에 null이 들어갈 수도 있고, 리스트가 null일 수도 있음

소스코드

참조