реализация arraylists - PullRequest
       2

реализация arraylists

0 голосов
/ 30 декабря 2018
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 для повторения?это не щелкает со мной.

Ответы [ 3 ]

0 голосов
/ 30 декабря 2018

сильный текст Массивы в Котлине имеют индекс с нулями .Для перебора всего массива нам нужно использовать индексы от 0 до array.size () - 1 .Оператор .. означает включение обоих диапазонов, поэтому для перебора всего массива:

for (index in 0..arraylist.size - 1) {
   // ...
}

Мы можем использовать функцию until, чтобы избежать использования arraylist.size-1, она включает в себя левый диапазон, но исключает правый диапазон:

for (index in 0 until arraylist.size) {
   // ...
}

Также мы можем использовать более короткую версию для цикла , чтобы просто перебрать все элементы массива:

for (item in arraylist) {
   // ...
}
0 голосов
/ 30 декабря 2018

Индексы массива начинаются с нуля.Это означает, что в arrayOf("A", "B", "C")

A имеет индекс 0, B имеет индекс 1 и C имеет индекс 2. Таким образом, последний действительныйindex - это размер массива - 1, равный 3 - 1 = 2

Если вы не хотите беспокоиться об этом, вы можете использовать indices extension extension, которое представляет собой IntRange всех допустимых индексов.

for(index in arraylist.indices) {
   println(arraylist[index])
}

Обратите внимание на замену get на операторную нотацию [], которая делает код более кратким.

Если вы не заботитесь об индексе, полностью избегайте головной боли и используйте forEach

arraylist.forEach {
   println(it)
}
0 голосов
/ 30 декабря 2018

Потому что, если вы не добавите -1, он будет перебирать 0 до размера списка.Это означает, что если у нас есть список размером 5, он будет повторяться: 0, 1, 2, 3, 4, 5

И, очевидно, индекс 5 здесь не является допустимым индексом, поэтому нам нужно убедиться, что мы не выполняем слишком много итераций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...