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进行迭代? 不是和我一起点击。
答案 0 :(得分:1)
因为不添加-1,它将迭代0到列表的大小。这意味着,如果我们有一个大小为5的列表,它将进行迭代:
0, 1, 2, 3, 4, 5
显然索引5在这里不是有效的索引,因此我们需要确保不要迭代太多。
答案 1 :(得分:1)
强文本在Kotlin中的数组具有从零开始的索引。要遍历整个数组,我们需要使用从 0 到 array.size()-1 的索引。运算符..
意味着包括两个范围,因此要遍历整个数组:
for (index in 0..arraylist.size - 1) {
// ...
}
我们可以使用函数until
来避免使用arraylist.size-1
,它包含左范围,但不包括右范围:
for (index in 0 until arraylist.size) {
// ...
}
我们也可以使用较短版本的 for 循环来遍历数组的所有元素:
for (item in arraylist) {
// ...
}
答案 2 :(得分:0)
数组的索引从零开始。这意味着在arrayOf("A", "B", "C")
A 的索引为0, B 的索引为1,而 C 的索引为2。因此,最后一个有效索引是数组的大小-1这是3 - 1 = 2
如果您不想担心,可以使用indices
扩展属性,它是所有有效索引的IntRange
。
for(index in arraylist.indices) {
println(arraylist[index])
}
请注意,将get
替换为运算符[]
可使代码更简洁。
如果您不关心索引,请完全避免头痛并使用forEach
arraylist.forEach {
println(it)
}