Weiter zum Inhalt

Listen in Scala

Lerne, was Listen sind und wie du sie in der Programmiersprache Scala einsetzt.
Aktualisiert 18. Sept. 2026  · 6 Min. lesen

Mit KI erkunden

ChatGPTClaudePerplexity

Diese Tutorials könnten dich ebenfalls interessieren:

Einführung

List (abstract data type)
Quelle: Wikipedia - List (abstract data type)

Eine einfach verkettete Listenstruktur mit drei Integer-Elementen (Quelle: Wikipedia - List (abstract data type)).

Eine Liste ist allgemein eine Folge abstrakter Datentypen, die eine feste Anzahl von Werten repräsentiert. Diese Werte können programmatisch verarbeitet werden und dürfen auch mehrfach in der Liste vorkommen. Ein Beispiel für eine Instanz einer Liste siehst du oben als einfach verkettete Liste mit drei Ganzzahlen. Listen gelten ebenfalls als Datenstruktur; ein typisches Beispiel dafür sind verkettete Listen.

Viele Programmiersprachen unterstützen Listen, und ein prominentes Beispiel, in dem Listen intensiv genutzt werden, ist Python. Eine Liste lässt sich oft erstellen, indem man Elemente in einer Reihenfolge innerhalb von Trennzeichen wie Klammern (), eckigen Klammern [], geschweiften Klammern {} oder spitzen Klammern <> notiert und mit Kommas, Semikolons oder Leerzeichen trennt. Manche Sprachen wie Python erlauben es, Listentypen wie Arrays zu indizieren oder zu slicen; dann beschreibt man den Datentyp treffender als Array (Quelle: Wikipedia - List (abstract data type)).

Speziell in Scala ist eine List eine Sammlung mit unveränderlichen Daten. Das bedeutet: Sobald die Liste erstellt ist, lässt sie sich nicht mehr ändern. In Scala entspricht die List einer verketteten Liste.

In einer Scala-Liste müssen die Elemente nicht alle vom selben Datentyp sein. Die Implementierung von Scala-Listen nutzt während der Erstellung intern einen veränderlichen Zustand. In Scala ist die Liste im Paket scala.collection.immutable definiert und daher unveränderlich. Eine Scala-List bietet zahlreiche Methoden wie add, prepend, max, min usw.

Syntax zum Definieren einer Scala-List

val variable_name: List[type] = List(item1, item2, item3) oder val variable_name = List(item1, item2, item3) Eine Liste in Scala ähnelt stark einem Scala-Array. Allerdings ist die Scala-List unveränderlich und repräsentiert eine verkettete Listenstruktur. Ein Scala-Array hingegen ist flach und veränderlich.

Schauen wir uns den Unterschied kurz an einem Beispiel an.

Scala List vs. Scala Array

Definieren wir zuerst ein Array in Scala.

Anschließend änderst du einen Wert am 1. Index (Scala-Arrays sind nullbasiert) und prüfst, ob sich der Wert aktualisieren lässt.

Scala Array

Wie du im obigen Codeschnipsel siehst, erlaubt dir das Scala-Array die Änderung am 1. Index.

Jetzt definierst du eine Scala List und versuchst dasselbe.

Scala List

Aus dem Beispiel erkennst du: Weil Scala-Listen unveränderlich sind, führt das Aktualisieren eines Werts zu einem Fehler.

Scala-List-Methoden

  • head: Gibt das erste Element der Scala-Liste zurück.

  • tail: Gibt alle Elemente außer dem ersten zurück.

  • isEmpty: Prüft, ob die Liste leer ist, und liefert entsprechend True oder False.

  • fill(): Erstellt eine uniforme Liste mit null oder mehr Kopien des angegebenen Elements.

  • reverse: Kehrt die Reihenfolge der Elemente in der Liste um.

  • $:::$ oder $.:::$ oder .concat(): Verknüpft zwei oder mehr Listen miteinander.

  • tabulate(): Erzeugt eine Liste per Tabellierung. Ähnlich zur Methode fill(), allerdings nimmt tabulate() zwei Argumente: Das erste gibt die Dimension der zu erstellenden Liste an, das zweite beschreibt die Elemente, die über eine Funktion berechnet werden.

Keine Sorge, falls dir einige der Methoden noch nicht vertraut sind. Du setzt sie gleich in Scala anhand von Beispielen um. Zuvor lernst du, wie man Scala-Listen definiert.

Du erstellst Scala-Listen mit den Datentypen Strings, Integer (1D & 2D). Außerdem lernst du, eine Liste zu erzeugen, die sowohl Strings als auch Integer enthält.

1D-Integer-Liste

1-D Integer List

1D-Liste mit Integer und String

1-D List with both Integer and String

1D-String-Liste

1-D String List

2D-Liste

2-D List

Arithmetische Operationen auf Listen

In diesem Beispiel verwendest du Listen anstelle einzelner Variablen. Anders als eine Variable kann eine List n Werte halten; du führst die arithmetischen Operationen daher auf zwei Listen statt auf zwei Variablen aus.

Schauen wir uns kurz an, wie das geht.

Für die arithmetischen Operationen nutzt du die Funktion zipped.map in Kombination mit den Listen x und y. In der Methode zipped.map gibst du als Argument die jeweilige Operation an.

Arithmetic Operation on Lists
Arithmetic Operation on Lists

Zum Abschluss schreiben wir einen Code, der all diese Methoden enthält.

object Scala_List_Methods
{

def main(args: Array[String])
{
    // define two lists
    val x = List(1, 40, 10)
    val y = List(20, 25, 30)
    val z = List("DataCamp", "Tutorials", "Are", "The", "Best")

    //Head
    println();
    println("Head of list x, y, z = " + (x.head, y.head, z.head));
    println();

    //Tail
    println("Tail of list x, y, z = " + (x.tail, y.tail, z.tail));
    println();

    //isEmpty
    println("Is list x, y, z empty? = " + (x.isEmpty, y.isEmpty, z.isEmpty));
    println();

    //Concatenate
    println("Concatenating x, y, z lists with the first method = " + (x:::y:::z));
    println("Concatenating x, y, z lists with the second method = " + ((x).:::(y).:::(z)));
    println("Concatenating x, y, z lists with the third method = " + (List.concat(x,y,z)));
    println();

    //Reverse
    println("Reverse of x, y, z is = " + (x.reverse, y.reverse, z.reverse));
    println();

    //Fill
    println("Output of Fill method is = " + (List.fill(5)(z)));
    println();

    //Tabulate
    println("Output of Tabulate method is = " + (List.tabulate(5)(x => x * x * x)));
}
}
Arithmetic Operation on Lists

Fazit

Glückwunsch zum Abschluss dieses Scala-Tutorials.

Stelle gern deine Fragen zu diesem Tutorial unten in den Kommentaren.

Themen
Scala

Scala-Kurse

Kurs

Einführung in Scala

3 Std.
27.1K
Dieser Kurs macht dich vertraut mit Scala, einer beliebten Sprache für skalierbare Anwendungen und Daten-Engineering-Infrastrukturen.
Details anzeigenRight Arrow
Kurs Starten
Mehr anzeigenRight Arrow