数组是一种初始化时指定容器大小,不可以动态调整其大小的容器。元素按顺序存储在一串连续的内存段上
一、数组的创建
1、arrayOf创建数组 创建一个数组并传递元素值给它,集合中的元素可以是任意类型
Kotlin
val array = arrayOf(1,2,4)
/// 元素可以是任意类型
var array2 = arrayOf(1,true,"2")
var array3: Array<Int> = arrayOf(1,2,3)
var array4: Array<Any> = arrayOf(1,true,"2")
2、arrayOfNulls创建数组 创建一个指定大小的、所有元素都为空的数组,但必须指定集合中的元素类型
Kotlin
// 创建一个指定大小的,所有元素都为空的数组
var arrayOfNUlls = arrayOfNulls<String>(5)
arrayOfNUlls[0] = "dd"
arrayOfNUlls[1] = "33"
3、动态创建数组(一般用不到)用接受数组大小以及一个方法参数的 Array 构造方法,用作参数的方法能够返回给定索引的每个元素初始值:
scss
// 创建一个 Array<String> 初始化为["0","1","4","9","16"
var array = Array(5){
it -> (it * it).toString()
}
二、原生类型数组

Kotlin
/// 字节数组
var bytes = ByteArray(size = 5)
bytes[0] = 0
/// IntArray
var ints = IntArray(size = 5)
ints[0] = 2
/// 注意这里it是它索引下标值,所以这是创建一个长度为5的IntArray[0,2,4,6,8]
var intarray = IntArray(size = 5){it * 2}
三、数组遍历
1、for循环--元素遍历
Kotlin
var a = arrayOf(1,3,3,4,5)
for (item in a){
println(item)
}
2、for循环--下标遍历
Kotlin
var a = arrayOf(1,3,3,4,5)
for (index in a.indices){
println(index.toString() + "->" + a[index])
/**
* 0->1
* 1->3
* 2->3
* 3->4
* 4->5
*/
}
3、for循环--遍历元素(带索引)
scss
var a = arrayOf(1,3,3,4,5)
for ((index, item ) in a.withIndex()){
println("$index -> $item")
/**
* 0 -> 1
* 1 -> 3
* 2 -> 3
* 3 -> 4
* 4 -> 5
*/
}
4、forEach遍历数组
Kotlin
var a = arrayOf(1,3,3,4,5)
a.forEach { it
println(it) // it指的是元素 1 3 3 4 5
}
5、forEach增强版
Kotlin
var a = arrayOf(1,3,3,4,5)
a.forEachIndexed { index, i ->
println("$index -> $i")
/**
* 0 -> 1
* 1 -> 3
* 2 -> 3
* 3 -> 4
* 4 -> 5
*/
}
四、数组翻转
css
var a = arrayOf(1,3,3,4,5)
var b = a.reverse()