Kotlin有Array 类,用于表示特定类型的数组。
一个Array 实例是一个容器,可以在一个变量下存储多个值。这些值也是有索引的,这意味着你可以按照从0 开始的索引顺序来访问它们。
要在Kotlin中创建一个数组,你需要调用arrayOf() 函数,并将数组的值作为参数提供给该函数。
例如,这里是如何创建一个数字数组1 到3 :
val myArray = arrayOf(1, 2, 3)
由于参数是Int 类型,所以数组的类型将被推断为Int 。
你也可以指定数组的类型,如下图所示:
val strArray = arrayOf<String>("Nathan", "Kotlin")
但是Kotlin IDE可能会建议你移动显式类型,因为Kotlin可以很好地推断出本地类型。
Kotlin甚至可以从使用class 创建的自定义类型中进行推断,如下图:
class Dog (var name:String)
val dogs = arrayOf(
Dog("Puppy"),
Dog("Jackson")
)
除了使用arrayOf() 函数外,你还可以使用Array 类构造函数来创建一个数组。
Array 类构造函数需要两个参数:
- 第一个是一个
Int,指定数组的大小。 - 第二个是一个回调函数,返回每个索引的值。Kotlin会给你提供索引。
下面的代码将创建一个Array ,其大小为3 ,其中每个索引的值为index number + 2 :
val myArray = Array(3) { i -> i + 2 }
上面的myArray 的值将是:
2( )0 + 23( )1 + 24( )2 + 2
上面的Array() 构造函数的第二个参数是一个lambda表达式,Kotlin中的lambda表达式可以写在括号外。
也请参见。Kotlin lambda表达式解释
接下来,让我们看看如何访问KotlinArray 实例的值。
访问和设置数组值
要访问一个特定索引的数组值,你可以使用数组名称,后面跟一个索引操作符,如下:
val myArray = arrayOf(1, 2, 3)
println(myArray[0]) // 1
println(myArray[1]) // 2
println(myArray[2]) // 3
一个Array 索引从0 开始,所以索引操作符[0] 将指向你插入到Array 的第一个元素。
要将一个新的值设置到一个特定的索引,你需要在索引操作符后面加上赋值操作符= ,如下图所示:
val myArray = arrayOf(1, 2, 3)
myArray[0] = 759
println(myArray[0]) // 759
println(myArray[1]) // 2
println(myArray[2]) // 3
这就是你如何从一个Array 中获取和设置数值。
遍历一个数组
KotlinArray 变量也是一个集合,所以你可以使用for...in 语法在数组上循环,如下图所示:
class Dog (var name:String)
val dogs = arrayOf(
Dog("Puppy"),
Dog("Jackson")
)
for (dog in dogs) {
println(dog.name)
}
你也可以像这样使用Array.forEach 方法:
dogs.forEach { println(it.name) }
for...in 和Array.forEach 都会产生相同的输出:
Puppy
Jackson
一个Array 实例的大小在初始化时是固定的,这意味着一旦初始化,你就不能从Array 中添加或删除元素。
如果你需要一个具有动态大小的Array ,你需要使用 ArrayList 类。