Appearance
Kapitel 6: Dart Sammlungstypen
6.1 Überblick über Sammlungen
Dart hat drei Haupt-Sammlungstypen:
- List: Geordnete Sammlung
- Set: Ungeordnete, duplicate-freie Sammlung
- Map: Schlüssel-Wert-Paar-Sammlung
6.2 List (Liste)
Deklaration und Initialisierung
dart
void main() {
// Variable Länge
List<String> früchte = ['Apfel', 'Banane'];
// Feste Länge
List<int> zahlen = List.filled(3, 0);
}Häufige Operationen
dart
void main() {
List<String> früchte = ['Apfel', 'Banane'];
// Hinzufügen
früchte.add('Kirsche');
// Löschen
früchte.remove('Banane');
// Ändern
früchte[0] = 'Orange';
// Abfragen
print(früchte[0]); // Orange
print(früchte.length); // 2
print(früchte.isEmpty); // false
print(früchte.contains('Apfel')); // false
// Sortieren
List<int> zahlen = [3, 1, 4, 1, 5];
zahlen.sort();
print(zahlen);
}6.3 Set (Menge)
Deklaration und Initialisierung
dart
void main() {
Set<String> früchte = {'Apfel', 'Banane', 'Apfel'}; // Duplikate werden entfernt
print(früchte); // {Apfel, Banane}
}Häufige Operationen
dart
void main() {
Set<int> a = {1, 2, 3};
Set<int> b = {3, 4, 5};
// Hinzufügen
a.add(4);
// Löschen
a.remove(1);
// Duplikate entfernen
List<int> list = [1, 2, 2, 3, 3];
Set<int> set = list.toSet();
print(set); // {1, 2, 3}
// Schnittmenge
print(a.intersection(b)); // {3, 4}
// Vereinigungsmenge
print(a.union(b)); // {2, 3, 4, 5}
}6.4 Map (Karte)
Deklaration und Initialisierung
dart
void main() {
Map<String, int> alter = {
'Alice': 25,
'Bob': 30
};
}Häufige Operationen
dart
void main() {
Map<String, int> alter = {
'Alice': 25,
'Bob': 30
};
// Hinzufügen
alter['Charlie'] = 35;
// Löschen
alter.remove('Bob');
// Ändern
alter['Alice'] = 26;
// Abfragen
print(alter['Alice']); // 26
print(alter.keys); // (Alice, Charlie)
print(alter.values); // (26, 35)
print(alter.containsKey('Alice')); // true
print(alter.containsValue(30)); // false
}6.5 Sammlungs-Durchlauftechniken
dart
void main() {
List<int> zahlen = [1, 2, 3, 4, 5];
// for-in
for (int zahl in zahlen) {
print(zahl);
}
// forEach
zahlen.forEach((zahl) {
print(zahl);
});
// where (Filtern)
List<int> gerade = zahlen.where((zahl) => zahl % 2 == 0).toList();
print(gerade); // [2, 4]
}6.6 Praxisbeispiel
dart
void main() {
// Studenteninformationen speichern
List<Map<String, dynamic>> studenten = [];
studenten.add({'name': 'Alice', 'alter': 20, 'note': 85});
studenten.add({'name': 'Bob', 'alter': 21, 'note': 90});
studenten.add({'name': 'Charlie', 'alter': 19, 'note': 78});
// Hohe Noten filtern
List<Map<String, dynamic>> hoheNoten = studenten.where((student) => student['note'] >= 80).toList();
// Studenten durchlaufen und anzeigen
for (Map<String, dynamic> student in hoheNoten) {
print('Name: ' + student['name'] + ', Note: ' + student['note'].toString());
}
}