Kotlin의 배열에는 Array, List, Map이 존재한다.
Collection Type | 특징 | Size 조작 | Element 변경 가능 | Index 접근 | Key-Value 저장 |
Array | 고정 크기 배열 | No | Yes | Yes | No |
List | Read Only || Mutable |
가변적 | No | Yes | No |
ArrayList | 가변 크기 리스트 | 가변적 | Yes | Yes | No |
Map | Key-Value | 가변적 | No | No | Yes |
값을 넣지 않고 선언
var ArrayName = arrayOf<Type>(Size)
var ArrayName = arrayOfNulls<Type>(Size) // null로 채워진 배열 선언
값을 넣고 선언
var ArrayName = arrayOf(1, 2, 3)
var ArrayName = arrayOf('a', 'b', 'c')
// 0으로 초기화
var arr = Array(5) {i->0}
var arr = Array<Int>(5) {i->0}
forEach
var arr = arrayOf(1, 2, 3)
arr.forEach { println(it) }
contentToString() : 배열 형태로 출력
println(arr.contentToString())
JoinToString("String")
println(arr.joinToString("String")
// ex)
println(arr.joinToString("+")
// "1+2+3"
고정 크기의 배열
Index를 이용해 값 변경 & 접근 가능
ArrayName[Index]
ArrayName[Index] = Value
// ex)
nums = arrayOf(1, 2, 3, 4)
nums[0] = 10
// [10, 2, 3, 4]
Size
ArrayName.size
set() : Index 위치의 값을 Value로 변경
ArrayName.set(Index, Value)
get() : Index의 값 가져오기
ArrayName.get(Index)
getOrElse() : Index 값을 반환하고, Index의 값이 없다면 Value를 반환
getOrElse(Index) { Value }
getOrNull() : Index 값을 반환하고, Index의 값이 없다면 Null를 반환
ArrayName.getOrNull(Index)
plus() : 원소 추가
ArrayName = ArrayName.push(Value)
사이즈와 값을 모두 모르는 경우
val ListName: List<Type> = List(Size)
val MutableListName: MutableList<Type> = mutableListOf(Size)
사이즈만 아는 경우
val emptyListWithSize: List<Any?> = List(5) { null }
val emptyMutableListWithSize: MutableList<Any?> = MutableList(5) { null }
값을 넣고 선언
val ListName: List<Type> = List(Size) { DefaultValue }
var MutableListName: MutableList<Type> = MutableList(Size) { DefaultValue }
forEach
ListName.forEach{ println(it) }
toString() : 배열 형태로 출력
println(ListName.toString())
JoinToString("String")
println(ListName.joinToString("Separator"))
Read Only & Mutable 객체 두 가지 형태로 제공
List : 불변 ( 값 변경 X )
MutableList : 가변 ( 값 변경 O )
val arrayList: ArrayList<Type> = ArrayList()
val arrayList: ArrayList<Type> = arrayListOf()
그냥 출력!
println(arrayList)
forEach()
arrayList.forEach{ println(it) }
toString()
println(arrayList.toString())
Read Only & Mutable 객체 두 가지 형태로 제공
Index로 접근 가능
add() : 추가
set() : 수정
remove() : 삭제
isEmpty() : 비어있는가?
size : Size 구하기
중복 허용
val map: Map<KeyType, ValueType> = mapOf()
val mutableMap: MutableMap<KeyType, ValueType> = mutableMapOf()
val map: Map<KeyType, ValueType> = mapOf(
key1 to value1,
key2 to value2,
// ...
)
val map: Map<String, Int> = mapOf("one" to 1, "two" to 2, "three" to 3)
map.forEach { (key, value) ->
println("$key -> $value")
}
println(map)
println(map.toString())
Key와 Value로 구성되어 있음
불변 : Map
가변 : MutableMap
순서 보장 X
map.keys // 키 모음 얻기
map.values // 값 모음 얻기
entries : 키와 값의 쌍을 얻기
[ 참고 사이트 ]
1. https://kotlinlang.org/docs/generics.html#type-projections
Generics: in, out, where | Kotlin
kotlinlang.org
2. https://hello-bryan.tistory.com/496
[Kotlin] 코틀린 기본 문법 2 (배열의 모든 것)
개발하면서 배열은 정말 많이 사용됩니다. 코틀린에서 배열 사용 방법에 대해서 작성 해보겠습니다. 배열 선언과 초기화 Kotlin에서 배열을 선언하고 초기화하는 방법은 다음과 같습니다: // 배열
hello-bryan.tistory.com
3. https://jimoo-vision.tistory.com/20
Kotlin 코틀린 Arrays 배열 (기본기) - jimoo
https://kotlinlang.org/docs/basic-types.html#arrays Basic types | Kotlin kotlinlang.org Arrays in Kotlin are represented by the Array class. It has get and set functions that turn into [] by operator overloading conventions, and the size property, along wi
jimoo-vision.tistory.com