← Flutter / Dart

Flutter / Dart · 06 / 18

Listen, Sets und Maps

Du wählst eine passende Sammlung für Reihenfolgen, eindeutige Werte oder Zuordnungen.

  • Klein
  • Grundlagen
  • 15 min

Voraussetzungen: Funktionen, Parameter und Rückgabewerte

Eine einzelne Variable speichert einen Wert. Sammlungen halten mehrere zusammengehörige Werte. List bewahrt eine Reihenfolge und erlaubt Duplikate. Set enthält jeden Wert höchstens einmal. Map ordnet einem Schlüssel einen Wert zu. Die Auswahl verändert, welche Regeln dein Programm bereits durch die Datenstruktur ausdrückt.

Beispieldateien

01Geordnete Einträge halten

List<int> bedeutet eine Liste ganzer Zahlen. add hängt einen Wert an. where prüft jeden Wert und liefert eine gefilterte Folge. toList erzeugt daraus wieder eine Liste. Die ursprüngliche Liste bleibt bei dieser Filterung erhalten.

collections.dart · dartDatei öffnen
void main() {
  final readings = <int>[64820, 64920];
  readings.add(0);
  print(readings.where((value) => value > 0).toList());
  final activities = <String>{'repair', 'service', 'repair'};
  print(activities);
  final costs = <String, int>{'repair': 12990};
  print(costs['repair']);
}

Starten / prüfen

dart run collections.dart

02Eindeutigkeit ausdrücken

Die Schreibweise <String>{...} erzeugt ein Set. Der doppelte Wert repair kommt nur einmal vor. Das eignet sich für auswählbare Aktivitäten, wenn dieselbe Bezeichnung nicht mehrfach erscheinen soll.

03Nach einem Schlüssel suchen

In costs gehören Namen zu Centbeträgen. costs["repair"] liest einen Wert. Ein unbekannter Schlüssel liefert null. Daher darfst du nicht davon ausgehen, dass jede Abfrage eine Zahl findet.

Erwartetes Ergebnis

Gefiltert: [64820, 64920]. Aktivitäten: {repair, service}. Kosten: 12990.

Deine Übung

Summiere alle Werte in readings. Was unterscheidet diese Berechnung vom letzten Kilometerstand?

Lösung mit Erklärung anzeigen

Beginne mit var total = 0 und addiere in einer for-in-Schleife jeden Wert. Das Ergebnis ist 129740. Kilometerstände sind kumulative Stände. Ihre Summe ist keine gefahrene Gesamtstrecke.

Projektbezug und Quellen

Das Beispiel ist zum Lernen vereinfacht. Die verlinkte Codeversion zeigt die Anwendung im Projekt und die dortigen Prüfungen.