컬렉션 타입
Array
- 배열 표현
- [ ], set(), get() 이용
fun main() {
val data: Array<Int> = Array(3, {0})
data[0] = 10
data[1] = 20
data.set(2, 10)
println(array size: ${data.size})
println(array data: ${data[0]}, ${data.get(1)})
}
기초 타입의 배열
- 기초 타입이면 BooleanArray, ByteArray, IntArray 등의 클래스 이용 가능
val data1: IntArray = IntArray(3, {0})
val data2: BooleanArray = BooleanArrya(2, {true})
- arrayOf() 함수를 이용해 배열 선언과 동시에 값을 할당할 수 있음
val data1 = intArrayOf(10, 20, 30)
val data2 = booleanArrayOf(true, false)
val data3 = arrayOf<Int>(1, 2, 3)
List, Set, Map(데이터 집합)
-
List: 순서O, 중복 허용
- 불변: List, ListOf()
- 가변: MutableList, mutableListOf()
var list1 = listOf<Int>(10, 20, 30)
var mutableList1 = mutableListOf<Int>(1, 2, 3)
mutableList1.add(3, 4)
mutableList1.set(0, 5)
val mulist1: MutableList<Int> = mutableListOf(1, 2, 3)
var mulist2: MutableList<Int> = mutableListOf(4, 5, 6)
mulist1 = mutableListOf(9, 8, 7)
mulist2 = mutableListOf(0, 1, 2)
-
Set: 순서X, 중복 허용X
- 불변: Set, setOf()
- 가변: MutableSet, mutableSetOf()
-
Map: 순서X, 중복 허용X, 키<->값으로 이루어짐
- 불변: Map, mapOf()
- 가변: MutableMap, mutableMapOf()
var map = mapOf<String, String>(Pair("one", "hello"), "two" to "world")
println(
"""
map size: ${map.size}
map data: ${map.get("one"), ${map.get("two")}}
"""
)
조건문 if, when
val result = if (data > 0) {
true
} else {
false
}
println(result)
when
- switch와 같은 기능
- 표현식으로 사용 가능, -> 다음 넣고 싶은 값 입력
when (data) {
10 -> println("10")
20 -> println("20")
else -> {
println("nothing")
}
}
var data: Any = 10
when (data) {
is String -> println("str")
20, 30 -> println("20 or 30")
in 1..10 -> println("1~10")
else -> println("nothing")
}
반복문 for, while
for
- 범위 연산자 in을 주로 사용
- for(i in 1..10) -> i가 1씩 1부터 10까지 증가
- for(i in 1 until 10) -> i가 1부터 9까지 증가(10 미만)
- for(i in 1.. 10 stpe 2) -> i가 2씩 증가
- for(i in 10 downTo 1) -> i가 10부터 1까지 감소
- indices는 컬렉션 타입의 인덱스 값을 의미
for(i in data.indices) {
print(data[i])
if(i !== data.size -1) print(",")
}
- withIndex()를 이용하면 인덱스와 실제 데이터를 함께 가져올 수 있음
for((index, value) in data.withIndex()) {
print(value)
if(index !== data.size -1) print(",")
}
when