자바 개발자를 위한 코틀린 입문 에 강의 내용을 정리한 내용이다.
코틀린에서 컬렉션을 다루는 방법에 대해서 설명한다.
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 (number in numbers) { println(number) }
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
| val map = mutableMapOf<Int, String>() map[1] = "MONDAY" map[2] = "SUNDAY"
mapOf(1 to "MONDAY", 2 to "SUNDAY")
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일 수도 있음
소스코드
참조