复制代码
/**
* kotlin 数组
* 使用arrayOf创建数组,必须指定数组的元素,可以是任意类型
* */
val arrayNumber = arrayOf(1, 2, 3, 4)
/**
* 集合中的元素可以是任意类型
* kotlin 中的Any 等价于 java 中的Object 对象的意思
* */
val arrayObjects = arrayOf(1, true, "2")
/**
* 使用arrayOfNulls 创建空数组
* 创建一个指定大小的、所有元素都为空的数组,但必须指定集合中的元素类型
* "?"表示可以为null
* */
val arrayOfNulls = arrayOfNulls<String>(5)
arrayOfNulls[0] = "Study Kotlin 01"
arrayOfNulls[1] = "Study Kotlin 02"
arrayOfNulls[2] = "Study Kotlin 03"
arrayOfNulls[3] = "Study Kotlin 04"
arrayOfNulls[4] = null
/**
* 利用array 的构造函数,动态创建数组
* 创建一个Array<String>初始化为["0","1","4","9","16"]
* i=0,1,2,3,4
* 数组创建的时候会循环5次,i就是数组的下标
* ->右边的表达式的结果就是数组总当前下标的元素
* */
val asc = Array(5) { i -> (i * i).toString() }
/**
* 字节数组
* */
val bytes = ByteArray(5)
bytes[0] = 1
/**
* 使用IntArray 创建整形数据数组
* 创建一个长度为5的空的IntArray
* */
val intArray2 = IntArray(5)
intArray2[0] = 1
/**
* 创建一个长度为5 都是100 的数组[100,100,100,100,100]
* */
val intArr2 = IntArray(5) { 100 }
/**
* 创建一个长度为5 的数组[0,2,4,6,8]
* it:lambda 表达式专有变量,这里指数组下标
* */
var intArr3 = IntArray(5) { it * 2 }//
//var intArr3 = IntArray(5) { i -> i * 2 }
/**
* 数组如何进行for循环遍历
* 依次取出数组中的元素 --for-in的形式
* */
for (item in intArr3) {
println(item)
}
/**
* 根据数组下标取出对应位置的元素
* */
for (i in intArr3.indices) {
println(i.toString() + "->" + intArr3[i])
}
/**
* 同时遍历下标和元素
* */
for ((index, item) in intArr3.withIndex()) {
println("$index->$item")
}
/**
* foreach
* */
intArr3.forEach {
println("forEach->$it")//it 代表数组的元素
}
/**
* foreach增强版
* */
intArr3.forEachIndexed { index, item ->
println("index->$index item->$item")
}