데이터를 연속적으로 나열한 상태
// 1. 생성
var arr1 = arrayOf(1, 2, 3)
var arr2 = Array(2, { 100 })
// 2. 빈 배열
var nullarr = arrayOfNulls<String>(100)
// 3. 다차원 배열
val arr = arrayOf(arrayOf(1, 2, 3), arrayOf(4, 5, 6));
// 4. 혼합 배열
var mixArray = arrayOf(4, 2, 3, "tiger", false)
// 2씩 곱해지는 정수 짝수 5개 배열
val arr = Array(5, {i -> i*2})
// 1000개 null로 채워진 정수 배열
var a = arrayOfNulls<Int>(1000)
// 0으로 채워진 배열
var a = Array(1000,{0})
var a = Array(1000, {i -> myClass(i) });
charArrayOf()
, booleanArrayOf()
, longArrayOf()
, shortArrayOf()
, byteArrayOf()
, intArrayOf()
ubyteArrayOf()
, ushortArrayOf()
, uintArrayOf()
, ulongArray()
package kotlin
public class Array<T> {
public inline constructor(size: Int, init: (Int) -> T)
public operator fun get(index: Int): T
public operator fun set(index: Int, value: T): Unit
public val size: Int
public operator fun iterator(): Iterator<T>
}
value = arr[index]
arr[index] = value
Arrays.toString()
deepToString()
사용배열이 일단 정의되면 고정되는데, 새로 할당하는 방법으로 추가하나 잘라 낼 수 있습니다
array.plus()
val arr1 = inArrayOf(1,2,3,4,5) // 고정된 배열
// 하나의 요소를 추가한 새 배열 생성
var arr2 = arr.plus(6)
println("arr2 : ${arr2.toString(arr2)}")
array.sliceArray()
// 필요한 범위를 잘라내 새 배열 생성
val arr3 = arr.sliceArray(0..2)
println(arr3)
val array = intArrayOf(1,2,3,4,5)
// 1. 가장 첫번째 요소
println(array.first()) // 1
// 2. 가장 마지막 요소
println(array.last()) // 5
// 3. 인덱스 출력
println(array.indexOf(2)) // 1
// 4. 평균
println(array.average()) // 3.0
// 5. 요소 개수
println(array.count()) // 5
// 6. 포함 여부 1
println(array.contains(6)) // false
// 7. 포함 여부 2
println(4 in array) // true
// 1. foreach
array.forEach {
e -> println("$e")
}
// 2. forEachIndexed (i는 인덱스, e는 요소)
array.forEachIndexed {
i, e ->
println("$i : $e")
}
// 3. Iterator
val iter = array.iterator()
while (iter.hasNext()) {
prinln(iter.next())
}