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 .

  • ¿Extendiendo la class de datos de Kotlin para usar con JPA?
  • Envolver todos los deserializadores estándar y personalizados de Jackson dentro de un deserializador de propiedad universal
  • El button de prevención de Kotlin / Anko cierra el dialog de alerta
  • ¿Cómo implementa HashMap la interfaz MutableMap en Kotlin?
  • Cómo componer nulables en Kotlin
  • La vista de la image no aparece en la Actividad (está bien en AppCompatActivity)
  • ¿Cómo get el país del usuario para una request HTTP en Back-end?
  • ¿Cómo declarar e inicializar un MutableSet en Kotlin?
  • Más diversión con los delegates de Kotlin
  • Reflexión de Kotlin: creación de objects desde CSV
  • Crear un service independiente en Kotlin