Kotlin阵列
在本教程中,我们将研究Kotlin阵列。
如果您不是Kotlin的新手,建议您阅读Kotlin简介教程,以确保您快速掌握本教程。
Kotlin阵列
Kotlin中的数组不是本机数据结构。
相反,它们是数组类型的类。
我们可以将Kotlin Array称为collections类。
Kotlin数组声明– arrayOf函数
以下是我们初始化数组的不同方法。
为了初始化和设置数组的元素,我们使用arrayOf
函数。
val countries = arrayOf("San Franceco","USA","China","Australia","Sri Lanka")
Kotlin编译器隐式推迟了Array的类型。
要指定类型,我们可以将函数设置为:
val countries = arrayOf<String>("San Franceco","USA","China","Australia","Sri Lanka") //an array of Strings
类型为Any的通用数组可以定义为:
val myArray = arrayOf("Hi",1,1L,1.2,false)
val array1 = arrayOf(1,2,3,4) val array2 = arrayOf(1L,2L,3L,4L) val array3 = arrayOf<Long>(1,2,3,4) //this is the same as array2. An array of longs
访问和修改数组中的元素
通常,我们使用数组的索引来访问和修改数组的元素。
在Kotlin数组中,我们可以另外使用get
和set
方法,如下所示。
val array1 = arrayOf(1,2,3,4) val array3 = arrayOf<Long>(1,2,3,4) array3.get(0) array3[0] array1[1] = 6 array1.set(1,6) println("Size is ${array1.size}") //Size is 4
注意:要获取数组的长度,我们调用函数size
。
Kotlin阵列的实用程序功能
Kotlin为我们提供了实用函数,可使用以下函数来初始化基元数组:charcharOfOf(),booleanArrayOf(),longArrayOf(),shortArrayOf(),byteArrayOf()。
使用这些函数可以将Array类编译成int []
,char []
,byte []
等。
此外,当您的代码库包含Kotlin和Java代码时,这些原始类型数组也很方便。
Kotlin类型数组可以作为原始类型数组传递给Java代码。
此外,这些原始类型数组可提高项目的性能。
val array1 = intArrayOf(1,2,3,4)
Kotlin Array()构造函数
构造函数需要两个参数。size
和init
。
我们在init
参数中指定一个lambda表达式,如下所示。
val array = Array(6) {i-> i*2} //or val array = Array(6,{i-> i*2}) for(element in array) println(element)
在上面的代码中,第二个参数接受一个lambda函数,该函数获取数组元素的索引,然后返回要在数组中该索引处插入的值。
val array = Array(6) {i-> i*0.1} //Array of Doubles for(element in array) println(element)
val array = Array(6) {i-> "Hi "+i} for(element in array) println(element) //prints the following in the console Hi 0 Hi 1 Hi 2 Hi 3 Hi 4 Hi 5
如果设置了数组构造函数的大小,但未按如下所示进行初始化,则编译器将引发错误。
var intArray = Array(6) //would not compile var intArray2 : Array<IntArray> //this is fine. Since we've just defined the type of var.
如下所示,使用原始类型的Array时,无需实例化,如下所示。
val intArray = IntArray(6) for(element in intArray) { println(element) //all elements are zero here. }
如果未实例化,则将大小分配给基本类型数组将为所有元素分配默认值。
将泛型数组转换为原始数组
通过在通用数组实例上调用方法toIntArray(),toCharArray()等,可以将通用Array类转换为原始数组类型。
以下片段演示了相同的内容。
val array1 = arrayOf(1,2,3,4) var intArray1 : IntArray = array1.toIntArray()
Kotlin阵列范例
反转数组
反转阵列
数组元素的总和
在数组中附加元素
用给定元素填充索引范围
注意:fill方法不受限于当前数组的大小。
我们也可以超出数组的索引限制来增加数组的长度,如下所示。将数组追加到当前数组