Kotlin 数组
数组是几乎所有编程语言中最基本的数据结构之一。数组背后的想法是存储相同数据类型的多个项目,例如单个变量名下的整数或字符串。
数组用于在编程中组织数据,以便可以轻松地对一组相关的值进行排序或搜索。
以下是数组的一些基本属性——
- 它们存储在连续的内存位置。
- 它们可以通过它们的索引以编程方式访问(array[1]、array[0] 等)
- 它们是可变的。
- 它们的大小是固定的。
要了解有关数组数据结构的更多信息,请查看数组教程。
创建一个数组 -
在 Kotlin 中,数组不是原生数据类型,而是由 Array 类表示的相似项的可变集合。
在 Kotlin 中定义数组有两种方法。
使用arrayOf()
函数–
我们可以使用库函数arrayOf()
通过将元素的值传递给函数来创建一个数组。
句法:
val num = arrayOf(1, 2, 3, 4) //implicit type declaration
val num = arrayOf(1, 2, 3) //explicit type declaration
使用 arrayOf() 和 arrayOf
fun main()
{
// declaring an array using arrayOf()
val arrayname = arrayOf(1, 2, 3, 4, 5)
for (i in 0..arrayname.size-1)
{
print(" "+arrayname[i])
}
println()
// declaring an array using arrayOf
val arrayname2 = arrayOf(10, 20, 30, 40, 50)
for (i in 0..arrayname2.size-1)
{
print(" "+arrayname2[i])
}
}
输出:
1 2 3 4 5
10 20 30 40 50
使用 Array 构造函数 –
由于 Array 是 Kotlin 中的一个类,我们也可以使用 Array 构造函数来创建一个数组。
构造函数有两个参数:
- 数组的大小,以及
- 一个函数,它接受给定元素的索引并返回该元素的初始值。
句法:
val num = Array(3, {i-> i*1})
在上面的示例中,我们将数组的大小作为 3 和一个将元素值从 0 初始化到 9 的 lambda 表达式传递。
Kotlin 使用构造函数创建数组的程序 -
fun main()
{
val arrayname = Array(5, { i -> i * 1 })
for (i in 0..arrayname.size-1)
{
println(arrayname[i])
}
}
输出:
0
1
2
3
4
除此之外,Kotlin 还内置了一些工厂方法来创建原始数据类型的数组,例如 byteArray、intArray、shortArray 等。这些类没有扩展 Array 类;但是,它们实现了相同的方法和属性。
例如,创建整数数组的工厂方法是:
val num = intArrayOf(1, 2, 3, 4)
其他可用于创建数组的工厂方法:
- byteArrayOf()
- charArrayOf()
- 短数组()
- 长数组()
访问和修改数组 –
到目前为止,我们已经了解了如何在 Kotlin 中创建和初始化数组。现在,让我们看看如何访问和修改它们。
同样,有两种方法可以做到这一点:
使用get()
和set()
方法——
如您所知,Kotlin 中的数组基本上是一个类。因此,我们可以通过它的成员函数访问一个类对象的数据。 get()
和set()
函数被称为成员函数。
get()
方法接受一个参数——元素的索引并返回该索引处的项目的值。
句法:
val x = num.get(0)
set()
方法有两个参数:元素的索引和要插入的值。
句法:
num.set(1, 3)
上面的代码将数组中第二个元素的值设置为 3
使用索引运算符[ ] –
[ ]
运算符可用于访问和修改数组。
要访问数组元素,语法为:
val x = num[1]
这会将num中第二个元素的值分配给x 。
要修改数组元素,我们应该这样做:
num[2] = 5;
这会将 num 数组中第三个元素的值更改为 5。
注意:在内部,索引运算符或 [ ] 实际上是重载运算符(请参阅运算符重载),仅代表对get()
和set()
成员函数的调用。
这是一个 Kotlin 数组操作的工作示例,我们在其中创建一个数组,修改它的值,并访问一个特定的元素:
fun main()
{ // declare an array using arrayOf()
val num = arrayOf(1, 2, 3, 4, 5)
num.set(0, 10) // set the first element equal to 10
num.set(1, 6) // set the secondelement equal to 6
println(num.get(0)) // print the first element using get()
println(num[1]) // print the second element using []
}
输出:
10
6
遍历数组 –
数组的一个重要属性是它可以以编程方式遍历,并且可以单独操作数组中的每个元素。 Kotlin 支持几种强大的遍历数组的方法。
遍历数组时最简单和最常用的习惯用法是使用 for 循环。
句法:
for(i in num.indices){
println(num[i])
}
使用for循环遍历数组的Kotlin程序-
// Traversing an array
fun main()
{
val num = arrayOf(1, 2, 3, 4, 5)
num.set(0, 10)
num.set(1, 6)
for (i in num.indices)
{
println(num[i])
}
}
输出:
10
6
3
4
5
或者,我们可以使用范围来实现相同的效果。在 Kotlin 中,范围是两个值(开始和结束)之间的间隔,可以使用(..)运算符创建。然后可以使用in关键字完成对范围的遍历。
范围的语法:
for (i in 0..10){
println(i)
}
数组中元素的范围定义为 0 到 size-1。因此,要使用范围遍历数组,我们在数组名称上运行从 0 到 size-1 的循环。
使用范围遍历数组的 Kotlin 程序-
// Traversing an array
fun main()
{
val arrayname = arrayOf(1, 2, 3, 4, 5)
for (i in 0..arrayname.size-1)
{
println(arrayname[i])
}
}
输出:
1
2
3
4
5
另一种可以说是不那么乏味的方法是使用 foreach 循环。
句法:
arrayname.forEach({index->println(index)})
使用 foreach 循环遍历数组的 Kotlin 程序-
// Traversing an array
fun main()
{
val arrayname = arrayOf(1, 2, 3, 4, 5)
arrayname.forEach({ index -> println(index) })
}
输出:
1
2
3
4
5
在评论中写代码?请使用 ide.geeksforgeeks.org,生成链接并在此处分享链接。