一、关于数组的基础知识和常用方式
/*** 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")}