Menu
Coddy logo textTech

Rückblick – Generischer Speicher

Teil des Abschnitts Objektorientierte Programmierung der Dart-Journey von Coddy. Lektion 69 von 110.

challenge icon

Aufgabe

Einfach

Erstellen wir ein generisches Speichersystem, das alles kombiniert, was du über Collections und Generics gelernt hast! Du erstellst eine Storage<T>-Klasse, die Elemente beliebigen Typs speichern und abrufen kann und über eine for-in-Schleife iteriert werden kann.

Du organisierst deinen Code in zwei Dateien:

  • storage.dart: Erstelle dein generisches Speichersystem mit zwei Klassen:
    • Eine StorageIterator<T>-Klasse, die Iterator<T> implementiert, um die Iteration über gespeicherte Elemente zu ermöglichen
    • Eine Storage<T>-Klasse, die Iterable<T> erweitert und über folgende Funktionen verfügt:
      • Eine private Liste, die intern Elemente enthält
      • Eine add(T item)-Methode zum Speichern eines neuen Elements
      • Eine getAt(int index)-Methode, die das Element am angegebenen Index zurückgibt
      • Einen count-Getter, der die Anzahl der gespeicherten Elemente zurückgibt
      • Einen iterator-Getter, der einen StorageIterator für die gespeicherten Elemente zurückgibt
  • main.dart: Importiere deine Speicherd Datei und demonstriere den generischen Speicher mit verschiedenen Typen:
    • Erstelle einen Storage<String> und füge drei Städtenamen hinzu: 'Paris', 'Tokyo', 'Sydney'
    • Gib die Anzahl der Elemente aus
    • Gib das Element am Index 1 aus
    • Verwende eine for-in-Schleife, um jede Stadt in einer eigenen Zeile auszugeben
    • Gib eine leere Zeile aus
    • Erstelle einen Storage<int> und füge vier Zahlen hinzu: 100, 200, 300, 400
    • Verwende die where-Methode, um Werte größer als 150 zu filtern, und gib anschließend die resultierende Liste aus

Dein Speichersystem sollte nahtlos mit jedem Typ funktionieren und dabei vollständige Typsicherheit gewährleisten. Da es Iterable erweitert, erhält es automatisch Zugriff auf leistungsstarke Methoden wie where, map und fold!

Erwartete Ausgabe:

Count: 3
Item at 1: Tokyo
Paris
Tokyo
Sydney

[200, 300, 400]

Probier es selbst

import 'storage.dart';

void main() {
  // TODO: Erstelle einen Storage<String> für Städte
  // Füge drei Städte hinzu: 'Paris', 'Tokyo', 'Sydney'

  // TODO: Gib die Anzahl der Elemente aus (Format: "Count: X")

  // TODO: Gib das Element an Index 1 aus (Format: "Item at 1: X")

  // TODO: Verwende eine for-in-Schleife, um jede Stadt in einer eigenen Zeile auszugeben

  // TODO: Gib eine Leerzeile aus
  print('');

  // TODO: Erstelle einen Storage<int> für Zahlen
  // Füge vier Zahlen hinzu: 100, 200, 300, 400

  // TODO: Verwende die where-Methode, um Werte größer als 150 zu filtern
  // Gib dann die resultierende Liste mit toList() aus
}

Alle Lektionen in Objektorientierte Programmierung

Übe selbstständig: Online-Dart-Compiler