Einstieg

Der Typ scala.collection.mutable.ListBuffer ist ein veränderlicher (engl. mutable) Typ der Scala Collection API. Möchte man rein funktional programmieren, sollte man um diesen Typ einen weiten Bogen machen.

Wenn man es mit der funktionalen Programmierung nicht 100% genau nimmt, kann man den Typ ListBuffer in der funktionalen Programmierung einsetzen. Ein guter Einsatzort für ListBuffer sind Funktionen, welche eine List erzeugen. Der ListBuffer wird darin verwendet, um die List Daten einzusammeln und zum Schluss in eine List (oder auch Seq, Vector) umzuwandeln. Greift man innerhalb der erzeugenden Funktion nicht auf veränderliche Daten, die außerhalb der Funktion definiert sind, zu, so kann die Funktion in einer funktionalen Umgebung unbedenklich genutzt werden.

Scala eignet sich ja bekanntermaßen nicht nur zur funktionalen Programmierung, sondern auch zur objektorientierten Programmierung, ohne Berücksichtigung funktionaler Ansätze. In objektorientierten Programmen eignet sich der ListBuffer zur Ablage der Daten in einem Collection Typ.

Einstiegsbeispiel

Nachdem wir uns die Daseinsberechtigung des ListBuffer vor Augen geführt haben, sehen wir uns ein Beispiel an. Im nachfolgenden Beispiel erzeugen wir mit Hilfe des ListBuffer eine List, wobei wir die gerade Zahlen in einer for-Schleife einsammeln.

import scala.collection.mutable.ListBuffer

object ListBufferDemo {

  def main(args: Array[String]): Unit = {
    val theList = createTheList()
    theList.foreach(println)
  }
  
  def createTheList(): List[Int] = {
    var buffer = new ListBuffer[Int]()
    for (i <- 0 until 8) {
      if (i % 2 == 0) buffer += i
    }
    buffer.toList
  }
}
itmapa.de - X2H V 0.21

Die Ausführung des Programms führt zu folgender Ausgabe auf der Systemausgabe:

0
2
4
6
            

Scala API:
Class ListBuffer
Object ListBuffer