首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >列清单的实施

列清单的实施
EN

Stack Overflow用户
提问于 2018-12-30 07:10:14
回答 3查看 52关注 0票数 2
代码语言:javascript
运行
复制
fun main(args:Array<String>){

    var arraylist= ArrayList<String>()
    arraylist.add("jena")
    arraylist.add("Laya")
    arraylist.add("Hussein")
    arraylist.add("Ahmed")

    println("First name:"+ arraylist.get(0))
    arraylist.set(0," Laya Hussein")

    println(" all element by object")
    for ( item in arraylist){
        println(item)
    }

    println(" all element by index")
    for( index in 0..arraylist.size-1){
       println(arraylist.get(index))
    }
}

我的问题,为什么我们加-1来迭代?这不是在和我说话。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-12-30 11:50:14

数组的索引是基于零的。这意味着在arrayOf("A", "B", "C")

A有索引0,B有索引1,C有索引2。所以最后一个有效的索引是数组的大小-1,即3 - 1 = 2

如果您不想担心这一点,可以使用indices扩展属性,它是所有有效索引的IntRange

代码语言:javascript
运行
复制
for(index in arraylist.indices) {
   println(arraylist[index])
}

注意用操作符符号[]替换get,这使代码更加简洁。

如果您不关心索引,请避免头痛,并使用forEach

代码语言:javascript
运行
复制
arraylist.forEach {
   println(it)
}
票数 0
EN

Stack Overflow用户

发布于 2018-12-30 07:29:51

因为如果不添加-1,它将遍历0到列表的大小。这意味着,如果我们有一个大小为5的列表,它将迭代:0, 1, 2, 3, 4, 5

很明显,索引5在这里不是一个有效的索引,所以我们需要确保我们不会迭代太远。

票数 1
EN

Stack Overflow用户

发布于 2018-12-30 07:36:19

Kotlin中的强文本数组具有基于零的索引.要迭代整个数组,我们需要使用从array.size()-1.到的索引。运算符..意味着包含两个范围,因此要迭代整个数组:

代码语言:javascript
运行
复制
for (index in 0..arraylist.size - 1) {
   // ...
}

我们可以使用函数until来避免使用arraylist.size-1,它包括左范围,但不包括右范围:

代码语言:javascript
运行
复制
for (index in 0 until arraylist.size) {
   // ...
}

此外,我们还可以使用较短版本的for循环来迭代数组的所有元素:

代码语言:javascript
运行
复制
for (item in arraylist) {
   // ...
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53975858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档