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?
listOf¿ Con ?Respuestas:
listOffunción de alto nivel al rescate:val geeks = listOf("Fowler", "Beck", "Evans")fuente
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.
Listas inmutables (
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 laArrays.asListde Java.emptyList()hace lo mismo, pero naturalmente devuelve una lista vacía.listOfNotNull()devuelve una lista inmutable que excluye todos losnullelementos.Listas mutables (
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 mutableArrayList. En caso de que realmente desee unaArrayListimplementación, use esto de nuevomutableListOf().Listimplementaciones, que no tienen funciones de conveniencia, se pueden inicializar como, por ejemploval list = LinkedList<String>(),. Eso es simplemente crear el objeto llamando a su constructor. Use esto solo si realmente desea, por ejemplo, unaLinkedListimplementación.fuente
Solo para agregar más información, Kotlin ofrece inmutable
ListyMutableListque se puede inicializar conlistOfymutableListOf. Si está más interesado en lo que ofrece Kotlin con respecto a las colecciones, puede consultar los documentos de referencia oficiales en Colecciones .fuente
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 okfuente
De esta manera, puede inicializar la Lista en Kotlin
val alphabates : List<String> = listOf("a", "b", "c")fuente