A gyűjtemények (Collections) a Dart nyelvben egy összefoglaló elnevezése a lista típusú adatoknak (List, Map, Set).
List (lista típus)
A List típussal egy külön bejegyzés foglalkozik, de azért itt is megemlítem. Ez a leggyakrabban alkalmazott típus, amit más programnyelvekben tömbként ismerünk.
A Dart-ban a listák a tömbök és vesszővel elválasztva adjuk meg a [ ] -ek között a lista elemeket:
var list = [1, 2, 3];
var stringList = [
'Car',
'Boat',
'Plane',
];
A List típus egy rendezett lista, ahol az első elem indexe 0.
Set (halmaz típus)
A Set vagyis a halmaz típus egy rendezetlen listája egyedi elemeknek. Utóbbi azt jelent, hogy egy elem csakis egyszer szerepelhet a listában.
var colors = {'red' 'green', 'blue'};
Üres halmaz létrehozásának módjai:
var colors = <String>{};
Set String names = {};
Map (kulcs-érték típus)
És jöjjön a kollekciók „királya” a Map, ami kulcs – érték párokat tartalmazó objektum. Mind a kulcsok és mind az értékek bármilyen típusú objektumok lehetnek. Egy kulcs csak egyszer fordulhat elő egy Map-en belül, de egy érték többször is.
var gifts = {
// Key: Value
'first': 'partridge',
'second': 'turtledoves',
'fifth': 'golden rings'
};
var nobleGases = {
2: 'helium',
10: 'neon',
18: 'argon',
};
A gifts nevű Map típusát így jelöljük: Map<String, String>
Itt az első String a kulcs típusa, a második pedig az érték típusa.
Map-eket a Map konstruktorral is létre lehet hozni:
var gifts = Map<String, String>();
gifts['first'] = 'partridge';
gifts['second'] = 'turtledoves';
gifts['fifth'] = 'golden rings';
var nobleGases = Map<int, String>();
nobleGases[2] = 'helium';
nobleGases[10] = 'neon';
nobleGases[18] = 'argon';
Több lista típus kombinációja
Az „élvezeteket” lehet tovább is fokozni. Például:
List<Map<String, Object>> myData() {
//...
}
Ezzel létrehoztunk egy olyan függvényt, ami visszaad egy olyan listát, aminek az elemei Map-ek. És ez a Map pedig úgy néz ki, hogy a kulcs String típusú. Az érték pedig Object. Itt az a „trükk”, hogy a Dart-ban végsősoron minden objektum. Így a fenti definicióban az Object azt jelenti, hogy a kulcs gyakorlatilag bármilyen típust felvehet.
Dart dokumentáció
Itt található a Dart hivatalos dokumentációja a kollekciókról.