Parece una pregunta estúpida, pero todo lo que encontré en Internet fue basura. Simplemente no puedo agregar un elemento de tipo T
en una lista List[T]
. Intenté con, myList ::= myElement
pero parece que crea un objeto extraño y el acceso a myList.last
siempre devuelve el primer elemento que se puso dentro de la lista.
223
List
se convierte en aListBuffer
, se agrega el elemento y seListBuffer
vuelve a convertir (más o menos comoString
yStringBuilder
en Java), pero eso es solo una suposición.Eso es porque no deberías hacerlo (al menos con una lista inmutable). Si realmente necesita agregar un elemento al final de una estructura de datos y esta estructura de datos realmente necesita ser una lista y esta lista realmente tiene que ser inmutable, haga lo siguiente:
o eso:
fuente
:+
, por ineficiente que sea, solo la reconstruye una vez.Las listas en Scala no están diseñadas para ser modificadas. De hecho, no puede agregar elementos a una Scala
List
; Es una estructura de datos inmutable , como una cadena de Java. Lo que realmente hace cuando "agrega un elemento a una lista" en Scala es crear una nueva Lista a partir de una Lista existente . (Fuente)En lugar de usar listas para tales casos de uso, sugiero usar una
ArrayBuffer
o unaListBuffer
. Esas estructuras de datos están diseñadas para tener nuevos elementos agregados.Finalmente, después de realizar todas sus operaciones, el búfer se puede convertir en una lista. Vea el siguiente ejemplo REPL:
fuente
Esto es similar a una de las respuestas pero de manera diferente:
fuente
Podemos agregar o anteponer dos listas o lista y matriz
Anexar:
Previo:
fuente