I want to create an Array of objects with a specific number of elements in Kotlin, the problem is I don't now the current values for initialization of every object in the declaration, I tried:
var miArreglo = Array<Medico>(20, {null})
in Java, I have this and is exactly what I want, but i need it in Kotlin. :
Medico[] medicos = new Medico[20]; for(int i = 0 ; i < medicos.length; i++){ medicos[i] = new Medico(); }
What would be the Kotlink equivalent of the above Java code?
Also, I tried with:
var misDoctores = arrayOfNulls<medic>(20) for(i in misDoctores ){ i = medic() }
But I Android Studio show me the message: "Val cannot be reassigned"
In Kotlin There are Several Ways. Then simply initial value from users or from another collection or wherever you want. 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.
The Kotlin equivalent of that could would be this:
val miArreglo = Array(20) { Medico() }
But I would strongly advice you to using Lists in Kotlin because they are way more flexible. In your case the List
would not need to be mutable and thus I would advice something like this:
val miArreglo = List(20) { Medico() }
The two snippets above can be easily explained. The first parameter is obviously the Array
or List
size as in Java and the second is a lambda function, which is the init { ... }
function. The init { ... }
function can consist of some kind of operation and the last value will always be the return type and the returned value, i.e. in this case a Medico
object.
I also chose to use a val
instead of a var
because List
's and Array
's should not be reassigned. If you want to edit your List
, please use a MutableList
instead.
val miArreglo = MutableList(20) { Medico() }
You can edit this list then, e.g.:
miArreglo.add(Medico())
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With