Veo que Kotlin tiene una List<out E>colección y me preguntaba sobre diferentes formas de inicializar una. En Java, podría escribir:
List<String> geeks = Arrays.asList("Fowler", "Beck", "Evans");
¿Cómo puedo lograr lo mismo en Kotlin?
Veo que Kotlin tiene una List<out E>colección y me preguntaba sobre diferentes formas de inicializar una. En Java, podría escribir:
List<String> geeks = Arrays.asList("Fowler", "Beck", "Evans");
¿Cómo puedo lograr lo mismo en Kotlin?
Respuestas:
listOf función de alto nivel al rescate:
val geeks = listOf("Fowler", "Beck", "Evans")
List<T>, por lo que no se debe asumir que es mutable.
Tanto las respuestas de Ilya como de gmariotti con voto positivo son buenas y correctas. Sin embargo, algunas alternativas se exponen en los comentarios y algunas no se mencionan en absoluto.
Esta respuesta incluye un resumen de las ya dadas, junto con aclaraciones y un par de otras alternativas.
List)Las listas inmutables o de solo lectura son listas que no pueden tener elementos agregados o eliminados.
listOf()menudo hace lo que quiere. Esto crea una lista inmutable, similar a la Arrays.asListde Java.emptyList()hace lo mismo, pero naturalmente devuelve una lista vacía.listOfNotNull()devuelve una lista inmutable que excluye todos los nullelementos.MutableList)Las listas mutables pueden tener elementos agregados o eliminados.
mutableListOf(), que normalmente es lo que desea cuando necesita agregar o eliminar elementos de la lista.arrayListOf(). Esto crea un mutable ArrayList. En caso de que realmente desee una ArrayListimplementación, use esto de nuevo mutableListOf().Listimplementaciones, que no tienen funciones de conveniencia, se pueden inicializar como, por ejemplo val list = LinkedList<String>(),. Eso es simplemente crear el objeto llamando a su constructor. Use esto solo si realmente desea, por ejemplo, una LinkedListimplementación.Solo para agregar más información, Kotlin ofrece inmutable Listy MutableListque se puede inicializar con listOfy mutableListOf. Si está más interesado en lo que ofrece Kotlin con respecto a las colecciones, puede consultar los documentos de referencia oficiales en Colecciones .
Permítanme explicar algunos casos de uso: creemos una lista inmutable (no modificable) con elementos de inicialización:
val myList = listOf("one" , "two" , "three")
vamos a crear una lista mutable (modificable) con campos de inicialización:
val myList = mutableListOf("one" , "two" , "three")
Declaremos un inmutable (no modificable) y luego lo instanciamos:
lateinit var myList : List<String>
// and then in the code :
myList = listOf("one" , "two" , "three")
Y finalmente agregue algunos elementos adicionales a cada uno:
val myList = listOf("one" , "two" , "three")
myList.add() //Unresolved reference : add, no add method here as it is non mutable
val myMutableList = mutableListOf("one" , "two" , "three")
myMutableList.add("four") // it's ok
De esta manera, puede inicializar la Lista en Kotlin
val alphabates : List<String> = listOf("a", "b", "c")
listOf¿ Con ?