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:
listOf
funció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.asList
de Java.emptyList()
hace lo mismo, pero naturalmente devuelve una lista vacía.listOfNotNull()
devuelve una lista inmutable que excluye todos losnull
elementos.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 unaArrayList
implementación, use esto de nuevomutableListOf()
.List
implementaciones, 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, unaLinkedList
implementación.fuente
Solo para agregar más información, Kotlin ofrece inmutable
List
yMutableList
que se puede inicializar conlistOf
ymutableListOf
. 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 ok
fuente
De esta manera, puede inicializar la Lista en Kotlin
val alphabates : List<String> = listOf("a", "b", "c")
fuente