¿Cómo inicializar una matriz en Kotlin?

En Java, una matriz se puede inicializar, como:

int numbers[] = new int[] {10, 20, 30, 40, 50} 

¿Cómo se ve la initialization de la matriz de Kotlin?

Usted puede:

 val numbers: IntArray = intArrayOf(10, 20, 30, 40, 50) 

Ver Kotlin – Tipos básicos para más detalles.

Aquí hay un ejemplo:

 fun main(args: Array<String>) { val arr = arrayOf(1, 2, 3); for (item in arr) { println(item); } } 

También puede usar un patio de recreo para probar las características del lenguaje.

Vale la pena mencionar que al usar kotlin builtines (por ejemplo, intArrayOf() , longArrayOf() , arrayOf() , etc.) no puede inicializar la matriz con los valores pnetworkingeterminados (o todos los valores al valor deseado) para un tamaño dado, en su lugar necesidad de hacer la initialization a través de una llamada según el constructor de la class.

 // Array of integers of a size of N val arr = IntArray(N) // Array of integers of a size of N initialized with a default value of 2 val arr = IntArray(N, {i -> 2}) 

En Kotlin hay varias forms.

 var arr = IntArray(size) // construct with only size 

Luego simplemente el valor inicial de los usuarios o de otra colección o donde quieras.

 var arr = IntArray(size, { 0 } ) // construct with size and fill array with 0 var arr = IntArray(size, { it * 1 } ) // construct with size and fill with its index 

También podemos crear una matriz con function incorporada como-

 var arr = intArrayOf(1, 2, 3, 4, 5) // create an array with 5 values 

De otra manera

 var arr = Array(size, { 0 } ) // it will create an integer array var arr = Array<String>(size, { "$it" } ) // this will create array with "0", "1", "2" and so on. 

También puede usar doubleArrayOf() o DoubleArray() o cualquier tipo primitivo en lugar de Int.

puedes usar este método

 var numbers=Array<Int>(size,init) var numbers=IntArray(size,init) var numbers= intArrayOf(1,2,3) 

ejemplo

 var numbers = Array<Int>(5, { i -> 0 }) 

init representa el valor pnetworkingeterminado (inicializar)

Creo que una cosa que vale la pena mencionar y que no es lo suficientemente intuitiva de la documentation es que, cuando utilizas una function de fábrica para crear una matriz y especificas su tamaño, la matriz se inicializa con valores que son iguales a sus valores de índice. Por ejemplo, en una matriz como esta: val array = Array(5, { i -> i }) , los valores iniciales asignados son [0,1,2,3,4] y no decir, [0,0,0,0,0] . Es por eso que a partir de la documentation, val asc = Array(5, { i -> (i * i).toString() }) produce una respuesta de ["0", "1", "4", "9", "16"]

Pregunta anterior, pero si desea usar un range:

 var numbers: IntArray = IntRange(10, 50).step(10).toList().toIntArray() 

Produce casi el mismo resultado que:

 var numbers = Array(5, { i -> i*10 + 10 }) 

resultado: 10, 20, 30, 40, 50

Creo que la primera opción es un poco más legible. Ambos trabajan.

Puedes intentar esto:

 var a = Array<Int>(5){0} 

En mi caso, necesito inicializar mis elementos del cajón. Lleno los datos por el siguiente código.

  val iconsArr : IntArray = resources.getIntArray(R.array.navigation_drawer_items_icon) val names : Array<String> = resources.getStringArray(R.array.navigation_drawer_items_name) // Use lambda function to add data in my custom model class ie DrawerItem val drawerItems = Array<DrawerItem>(iconsArr.size, init = { index -> DrawerItem(iconsArr[index], names[index])}) Log.d(LOGGER_TAG, "Number of items in drawer is: "+ drawerItems.size) 

Modelo personalizado class-

 class DrawerItem(var icon: Int, var name: String) { } 

intialize array de esta manera: val paramValueList : Array<String?> = arrayOfNulls<String>(5)

  • ¿Cómo implementar readLine () !!. ToIntArray () en Kotlin?
  • Inicialización de Kotlin 2d Array
  • Conceptos básicos de Kotlin: ¿cómo agregar o establecer un elemento de un map?
  • Kotlin: cómo crear una matriz 2D del tipo String
  • Toma la input en la matriz con el bucle
  • ¿Cómo convertir una list borrada por types a una matriz en Kotlin?
  • ¿Cómo encontrar qué elemento no comparó las matrices en Kotlin?
  • Kotlin - Cómo convertir String a ByteArray
  • Array Int bidimensional en Kotlin
  • Kotlin sorting array de una class basada en una var dentro de la class
  • Inicializando matrices en kotlin