Scala tiene un mapa mutable e inmutable, pero solo tiene una lista inmutable. Si desea una Lista mutable, necesita un ListBuffer.Sin lista mutable de Scala
No entiendo por qué esto es así. ¿Alguien sabe ?.
Scala tiene un mapa mutable e inmutable, pero solo tiene una lista inmutable. Si desea una Lista mutable, necesita un ListBuffer.Sin lista mutable de Scala
No entiendo por qué esto es así. ¿Alguien sabe ?.
Se puede elegir entre los siguientes:
scala.collection.mutable.DoubleLinkedList
scala.collection.mutable.LinkedList
scala.collection.mutable.ListBuffer
scala.collection.mutable.MutableList
Así que, sí, Scala tiene listas mutables :-)
Para obtener más información sobre cuál usar, consulte http://stackoverflow.com/questions/11049213/which-scala-mutable-list-to-use – placeybordeaux
Espero que este artículo pueda ser de alguna utilidad para usted. El diagrama en la parte inferior de la página es particularmente útil para proporcionar las clases mutables e inmutables.
http://www.scala-lang.org/docu/files/collections-api/collections_1.html
La respuesta aceptada por Jean-Philippe Pellet es más directa, y le da algunas clases que puede incluir en su código para superar su problema. Sin embargo, Graham en realidad * respondió * su pregunta sobre "¿por qué es así?". Espero que lea el enlace que proporcionó, ya que lo ayudará a comprender mejor la idea detrás de colecciones mutables e inmutables en Scala. –
Hay una mutable List
, pero se llama Buffer
. El artículo vinculado por Graham entra en más profundidad, pero pensé que debería haber una respuesta específica a la pregunta también.
Map
es un trait
- como Java interface
-, mientras que List
es un class
, una implementación concreta de Seq
. Hay Seq
mutable e inmutable, al igual que para Map
.
Esto puede ser confuso para los programadores de Java, ya que, en Java, List
es un interface
, cuya (principales) son implementaciones ArrayList
y LinkedList
. Por desgracia, nombrar Java es atroz. En primer lugar, ArrayList
no es un List
por cualquier tramo de la imaginación. Además, la interfaz tiene métodos que no están realmente relacionados con ninguna lista tradicional.
Por lo tanto, si desea una equivalencia mutable/inmutable, consulte las implementaciones de subclases concretas de Seq
.
¿No hay una [MutableList] (http://www.scala-lang.org/api/current/scala/collection/mutable/MutableList.html)? – Nishant
'List' tiene un significado muy específico en ciencias de la computación y Scala siguió eso (en lugar de continuar el abuso de Java de este término :-D). – soc
Este es un duplicado, pero, por desgracia, no puedo encontrar el anterior. –