El tamaño impar numerado MutableList <Int> en Kotlin devuelve IndexOutOfBoundsException con el iterador

Ejecutar una testing con el siguiente código devuelve una java.lang.IndexOutOfBoundsException: índice 75, tamaño: 75.

Esto no ocurre en las lists pares, solo en las lists impares. ¿Estoy haciendo esto mal? Iterar en Java no parece hacer esto.

var mList: MutableList<Int> = mutableListOf() for(n in 1..75) { mList.add(n) } for(n in mList.iterator()) { println(mList[n]) } 

mList contiene estos numbers, con estos índices:

 [ 1, 2, 3, 4, ... , 73, 74, 75] list contents 0 1 2 3 ... 72 73 74 indexes 

Por lo tanto, si indexa mList con los contenidos de mList , eso significa acceder a los índices del 1 al 75 , lo que le dará los numbers del 2 al 75 para los primeros 74 accesos, y finalmente un IndexOutOfBoundsException cuando intente acceder al elemento en el índice 75 que no existe

Si desea iterar sobre mList e imprimir sus elementos, tiene varias forms de hacerlo:

 // using indexes with `until` for(i in 0 until mList.size) { println(mList[i]) } // using `.indices` to get the start and end indexes for(i in mList.indices) { println(mList[i]) } // range-for loop for(i in mList) { println(i) } // functional approach mList.forEach { println(it) } 

Está iterando sobre todos los numbers 1..75 pero la indexing comienza en 0. Restar 1 del ítem le daría el índice correcto del valor.

 for(n in mList.iterator()) { println(mList[n - 1]) } 

Pero finalmente ni siquiera es lo que pretendía hacer en absoluto. Es posible que desee imprimir el elemento directamente o iterar sobre los índices 0..mList.size-1 .

  • Cómo get datos de más de una aplicación json
  • La class Kotlin Custom View implementa una interfaz que no se puede resolver en `: app: compileDebugKotlinAfterJava`. La versión idéntica de Java funciona bien
  • ¿Hay un equivalente en Kotlin para Swift init (se repite: count :)
  • ¿Cuál es la diferencia entre shouldbe y shouldbee exactamente en KotlinTest?
  • Obtener location Android Kotlin
  • Android Kotlin: envía notifications cada minuto
  • Adjuntar fonts al proyecto de biblioteca de kotlin no aparecen en AS
  • Cómo llamar al constructor del tipo genérico en el constructor de la class
  • Dagger 2 - Inyectar con valor pnetworkingeterminado en el constructor
  • package de alternativa protegida en kotlin
  • Sitio de Android, agregando classs de datos de la biblioteca a la database