二十五岁时我们都一样愚蠢、多愁善感,喜欢故弄玄虚,可如果不那样的话,五十岁时也就不会如此明智。
标题:Kotlin 集合之 数组 array
Array 类代表着数组
创建数据有四种方法
直接指定长度
val fixedSizeArray = arrayOfNulls<Int>(5)使用装箱操作
val arr = arrayOf(1, 2, 3) val intArr = intArrayOf(1, 2, 3) //同理还有 booleanArrayOf() 等使用闭包进行初始化
val asc = Array(5, { i -> i * i }) //0,1,4,9,16空数组
长度为 0 的空数组
val empty = emptyArray<Int>()访问数组元素
[] 可以用于访问数组的元素,实际上 [] 被进行了操作符的重载,调用的是 Array 类的 setter 和 getter 方法
val arr = arrayOf(1, 2, 3) println(asc[1]) // 1 println(asc.get(1)) // 1 // println(asc[10]) ArrayIndexOutOfBoundsException[] 虽然调用的是 setter 和 getter 方法,但是编译成字节码时会被进行优化,变成直接访问数组的内存地址,所以不会造成性能损失。
修改元素
asc[1] = 10遍历数组
for (i in asc) { println(i) }此操作不会创建 iterator 对象,不会影响性能
遍历数组下标
for (j in asc.indices) { println(j) }此操作不会创建 iterator 对象,不会影响性能
检查下标
if (i in asc.indices) { // i>=0 && i<asc.size() println("indices:" + i) }