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.
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 } }
Die Ausführung des Programms führt zu folgender Ausgabe auf der Systemausgabe:
0 2 4 6
Scala API:
Class ListBuffer
Object ListBuffer