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