Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

mutable lists







Scala Mutable Lists

  • Overview: Mutable lists in Scala are part of the scala.collection.mutable package. They allow for modification after creation, supporting operations like adding, removing, and updating elements.

  • Importing Mutable Lists: Before using mutable lists, you need to import the mutable package.

    import scala.collection.mutable.ListBuffer
    







Creating Mutable Lists

Mutable lists can be instantiated using ListBuffer, which is a resizable array buffer analogous to a list.

val mutableList: ListBuffer[Int] = ListBuffer(1, 2, 3)







Adding Elements

  • Append elements using +=:
    mutableList += 4  // ListBuffer(1, 2, 3, 4)
    
  • Prepend elements using +=::
    0 +=: mutableList  // ListBuffer(0, 1, 2, 3, 4)
    
  • Append collections using ++=:
    mutableList ++= List(5, 6)  // ListBuffer(0, 1, 2, 3, 4, 5, 6)
    







Removing Elements

  • Remove a single element by value:
    mutableList -= 3  // ListBuffer(0, 1, 2, 4, 5, 6)
    
  • Remove elements by index with remove:
    mutableList.remove(0)  // Removes the first element; resulting ListBuffer(1, 2, 4, 5, 6)
    







Best Practices

  • Use Cases: Opt for mutable lists when you have a collection that needs to change frequently, such as elements being added or removed based on program logic.
  • Performance: Mutable lists offer performance benefits for certain operations like appending, but be mindful of copying costs when converting to immutable collections.
  • Thread Safety: ListBuffer is not thread-safe. For concurrent programming, consider using thread-safe collections from scala.collection.concurrent or using synchronization mechanisms.