val array = arrayOf(100, 200)
// 인덱스
for(i in array.indices) {}
// 인덱스, 값
for((i,v) in array.withIndex()) {}
// 값 추가해서 새로운 배열 리턴 (Copy)
for(n in array.plus(400)) {
println(n)
}
컬렉션을 선언할 때, 불변인지 가변인지 먼저 설정해야함.
컬렉션안에 불변인 Reference Type의 Element는 바꿀 수 있음
// 불변 List
val numbers = listOf(100, 200)
val emptyList = emptyList<Int>() // 비어 있는 리스트는 제너릭으로 타입을 명시해아함
// 인덱스
for(i in numbers.indices) {}
// 인덱스, 값
for((i,v) in numbers.withIndex()) {}
// 값 추가해서 새로운 배열 리턴 (Copy)
for(n in numbers.plus(400)) {
println(n)
}
// 가변 List
val mutableNumbers = mutableListOf(100,200)
mutableNumbers.add(1)
mutableNumbers[1] = 3
for(i in mutableNumbers.indices) {}
for((i, v) in mutableNumbers.withIndex()) {}
for(n in mutableNumbers) {
println(n)
}
// 불변 Set
val numbersSet = setOf(100,200)
for(n in numbersSet) {}
for((i, v) in numbersSet.withIndex()) {}
// 불변 -> 가변 mutableSetOf(100,200)
val numbersMutableSet = numbersSet.toMutableSet()
numbersMutableSet.add(333)
for(n in numbersMutableSet) {println(n)}
// 불변 Map
val numbersMap = mapOf<Int,String>(1 to "Monday", 2 to "Tuesday", 99 to "Holiday")
// key
for(key in numbersMap.keys) {}
// value
for(key in numbersMap.values) {}
// key, value
for((k, v) in numbersMap) {
println("${k} , ${v}")
}
// key값으로 호출
println(numbersMap[99])
// 가변 Map (mutableMapOf)
val numbersMutableMap = numbersMap.toMutableMap()
numbersMutableMap[3] = "Wednesday"
println(numbersMutableMap[3])
TIP : 깔끔한 코드와 불필요한 가변 리스트 사용을 줄이기 위해 우선 불변 리스트를 만들고, 꼭 필요한 경우가변 리스트로 바꾸자