Kotlin教程:Array可变数组

2020-04-2121:48:12编程语言入门到精通Comments1,839 views字数 2455阅读模式

Array是IntString等类似数据的集合。Kotlin中的数组具有固定大小的可变性。 这意味着可以对数组元素执行读写操作。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18279.html

数组声明语法文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18279.html

下面是一个初始化为int类型的元素,大小为5,所有元素都为0的数组。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18279.html

var myArray = Array<Int>(5){0}
Kotlin

Kotlin数组声明 - 使用arrayOf函数文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18279.html

var myArray1 = arrayOf(1,10,4,6,15)  
var myArray2 = arrayOf<Int>(1,10,4,6,15)  
val myArray3 = arrayOf<String>("Ajax","Prake","Michel","John","Sumit")  
var myArray4= arrayOf(1,10,4, "Ajax","Prake")
Kotlin

或者文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18279.html

var myArray5: IntArray = intArrayOf(5,10,20,12,15)
Kotlin

下面来看看Kotlin中的数组示例。 在这个例子中,将看到如何初始化和遍历数组中的元素。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18279.html

Kotlin数组示例1

在这个例子中,只是初始化一个大小为5的数组,默认值为0。数组的索引值从0开始。数组的第一个元素放在索引0,最后一个元素放在一个比数组总数小1的元素。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18279.html

fun main(args: Array<String>){
    var myArray = Array<Int>(5){0}

    for(element in myArray){
        println(element)
    }
}
Kotlin

执行上面示例代码,得到以下结果 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18279.html

0
0
0
0
0
Shell

Kotlin数组示例2

还可以使用索引值重写数组的值。 数组的值是可以修改的,所以把它称为可变数组。 例如:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18279.html

fun main(args: Array<String>){
    var myArray = Array<Int>(5){0}

    myArray[1]= 10
    myArray[3]= 15

    for(element in myArray){
        println(element)
    }
}
Kotlin

执行上面示例代码,得到以下结果 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18279.html

0
10
0
15
0
Shell

Kotlin数组示例3 - 使用arrayOf()和intArrayOf()函数:

Kotlin中的数组也声明使用不同的函数,如arrayOf()intArrayOf()等。下面来看看arrayOf()intArrayOf()函数的示例。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18279.html

fun main(args: Array<String>){
    val name = arrayOf<String>("Ajax","Prake","Michel","Yiibai","Maxsu")
    var myArray2 = arrayOf<Int>(1,10,4,6,15)
    var myArray3 = arrayOf(5,10,20,12,15)
    var myArray4= arrayOf(1,10,4, "Ajax","Prake")
    var myArray5: IntArray = intArrayOf(5,10,20,12,15)

    for(element in name){
        println(element)
    }

    println("Array 1 => ")
    for(element in myArray2){
        println(element)
    }
    println("Array 2 => ")
    for(element in myArray3){
        println(element)
    }
    println("Array 3 => ")
    for(element in myArray4){
        println(element)
    }
    println("Array 4 => ")
    for(element in myArray5){
        println(element)
    }

}
Kotlin

执行上面示例代码,得到以下结果 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18279.html

Ajax
Prake
Michel
Yiibai
Maxsu
Array 1 => 
1
10
4
6
15
Array 2 => 
5
10
20
12
15
Array 3 => 
1
10
4
Ajax
Prake
Array 4 => 
5
10
20
12
15
Shell

Kotlin数组示例4

假设尝试在索引位置插入一个大于数组大小的元素时,会发生什么? 它将抛出一个ArrayIndexOutOfBoundException。 这是因为想要插入元素的索引值不存在。 这是由于数组大小的长度固定。 下面来看看一个例子:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18279.html

fun main(args: Array<String>){
    var myArray5: IntArray = intArrayOf(5,10,20,12,15)

    myArray5[6]=18 // ArrayIndexOutOfBoundsException  
    for(element in myArray5){
        println(element)
    }
}
Kotlin

执行上面示例代码,得到以下结果 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18279.html

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6
    at ArrayListKt.main(Array.kt:4)
Shell

Kotlin数组示例5 - 使用范围遍历

Kotlin的数组元素也使用索引范围(minValue..maxValue)或(maxValue..minvalue)遍历。 让我们看一个使用范围遍历数组的示例。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18279.html

fun main(args: Array<String>){  
    var myArray5: IntArray = intArrayOf(5,10,20,12,15)  

    for (index in 0..4){  
        println(myArray5[index])  
    }  
    println()  
    for (index in 0..myArray5.size-1){  
        println(myArray5[index])  
    }  
}
Kotlin

执行上面示例代码,得到以下结果 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18279.html

5
10
20
12
15

5
10
20
12
15

//原文出自【易百教程】,商业转载请联系作者获得授权,非商业转载请保留原文链接:https://www.yiibai.com/kotlin/kotlin-mutable-array.html#article-start文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18279.html

文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/18279.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/ymba/18279.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定