728x90
Array
Array 클래스의 생성자 : <init>(size: Int. init: (Int) -> T)
- 배열에 접근할 때는 대괄호([])를 이용하거나 .set(), .get()을 이용해 접근
fun main(){
// 배열크기가 3인 Int형 배열을 0으로 초기화함
val arrData: Array<Int> = Array(3, {0})
println(arrData.joinToString()) // 0, 0, 0
arrData[0] = 10 // 0번째 인덱스에 10 할당([]로 접근)
arrData[1] = 20 // 1번째 인덱스에 20 할당([]로 접근)
arrData.set(2, 30) // 2번째 인덱스에 30 할당(.set으로 접근)
println("""
arr size : ${arrData.size}
arr data0 : ${arrData[0]} // 0번째 인덱스 값 : 10([]로 접근)
arr data1 : ${arrData[1]} // 1번째 인덱스 값 : 20([]로 접근)
arr data2 : ${arrData.get(2)} // 2번째 인덱스 값 : 30(.get으로 접근)
""".trimIndent())
}
기타 배열 선언 방식
- 배열의 데이터가 기초타입이면 Array를 사용하지 않고 각 기초타입 클래스 사용 가능
(BooleanArray, ByteArray, CharArray, DoubleArray, FloatArray, IntArray, LongArray, ShortArray)
val bArr: BooleanArray = BooleanArray(3, {false})
val iArr: IntArray = IntArray(3, {1})
println(bArr.joinToString()) // false, false, false
println(iArr.joinToString()) // 1, 1, 1
- arrayOf() 를 이용해 배열을 선언하면서 값을 할당할 수 있음
val arr = arrayOf(1, 2, 3)
println(arr.size) // 3
println(arr::class) // class [Ljava.lang.Integer; (Kotlin reflection is not available)
println("${arr[0]}, ${arr[1]}, ${arr.get(2)}") // 1, 2, 3
List, Set, Map
- Collection 타입의 클래스
- List : 순서있는 데이터 집합, 데이터 중복 허용
- Set : 순서없는 데이터 집합, 데이터 중복 허용X
- Map : 키, 값 쌍으로 이루어진 순서 없는 데이터 집합, 키 중복 허용X
구분 | 타입 | 함수 | 특징 |
List | List | listOf() | 데이터 변경 불가 |
MutableList | mutableListOf() | 데이터 변경 가능 | |
Set | Set | setOf() | 데이터 변경 불가 |
MutableSet | mutableSetOf() | 데이터 변경 가능 | |
Map | Map | mapOf() | 데이터 변경 불가 |
MutableMap | mutableMapOf() | 데이터 변경 가능 |
fun main(){
var list1 = listOf<Int>(1,2) // 불변 list
var list2 = mutableListOf<Int>(1,2) // 가변 list
println("${list1.size}, ${list1[0]}, ${list1[1]}") // 2, 1, 2
list2.add(3) // 가변 list에 항목 추가
list2.set(0, 3) // 가변 list의 0번 인덱스 값 변경
println("${list2.size}, ${list2[0]}, ${list2[1]}, ${list2.get(2)}") // 3, 3, 2, 3
}
Map
- Map은 키와 값으로 이루어진 데이터 집합이다. C#에서의 Dictionary와 매우 유사하다.
- 코틀린에서 Map은 키와 값의 쌍을 저장하는 불변(immutable) 컬렉션이다. 만약 변경 가능한(가변) 맵이 필요하다면 MutableMap을 사용한다.
- "one" to 1 처럼 객체에 대입하거나 Pair("one", 1) 처럼 객체에 대입하는 방법이 있다.
fun main() {
// 불변 Map
val immutableMap: Map<String, Int> = mapOf(Pair("one", 1), "two" to 2, "three" to 3)
// 가변 Map
val mutableMap: MutableMap<String, Int> = mutableMapOf(Pair("one", 1), "two" to 2, "three" to 3)
// 값 접근
println("Immutable Map: ${immutableMap["one"]}") // 출력: 1
println("Mutable Map before update: ${mutableMap["two"]}") // 출력: 2
// 값 추가/수정
mutableMap["two"] = 22
mutableMap["four"] = 4
println("Mutable Map after update: $mutableMap") // 출력: {one=1, two=22, three=3, four=4}
// 값 제거
mutableMap.remove("one")
println("Mutable Map after removal: $mutableMap") // 출력: {two=22, three=3, four=4}
}
728x90
'Android' 카테고리의 다른 글
[Kotlin] 코틀린 - 반복문 (0) | 2024.08.01 |
---|---|
[Kotlin] 코틀린 - 조건문 (0) | 2024.08.01 |
[Kotlin] 코틀린 - 함수 (0) | 2024.08.01 |
[Kotlin] 코틀린 - 변수 (0) | 2024.07.31 |
[Android] 안드로이드 앱 기본 구조 - 안드로이드 컴포넌트 (0) | 2024.07.31 |