Skip to main content

map

Een Map in Dart is een collectie van sleutel-waardeparen. Zowel de sleutels als de waarden kunnen van elk type zijn, en elke sleutel moet uniek zijn. Mappen worden gebruikt om gegevens te koppelen en snel op te zoeken op basis van een sleutel.

Definiëren van Map variabelen

Je kunt een Map variabele definiëren door het type Map te gebruiken gevolgd door de sleutel- en waarde typen tussen haakjes (<>) en de sleutel-waardeparen tussen accolades ({}).

void main() {
  // Een Map met strings als sleutels en integers als waarden
  Map<String, int> leeftijd = {
    'Alice': 30,
    'Bob': 25,
    'Charlie': 35
  };

  // Een lege Map die later gevuld kan worden
  Map<int, String> legeMap = {};

  print(leeftijd);  // Output: {Alice: 30, Bob: 25, Charlie: 35}
  print(legeMap);   // Output: {}
}

Toegang krijgen tot waarden in een Map

Je kunt waarden in een Map opvragen door hun sleutel te gebruiken.

void main() {
  Map<String, int> leeftijd = {
    'Alice': 30,
    'Bob': 25,
    'Charlie': 35
  };

  print(leeftijd['Alice']);   // Output: 30
  print(leeftijd['Bob']);     // Output: 25
  print(leeftijd['Charlie']); // Output: 35
}

Toevoegen en wijzigen van sleutel-waardeparen in een Map

Je kunt nieuwe sleutel-waardeparen toevoegen of bestaande waarden wijzigen door de sleutel te gebruiken.

void main() {
  Map<String, int> leeftijd = {
    'Alice': 30,
    'Bob': 25
  };

  // Toevoegen van een nieuw sleutel-waarde paar
  leeftijd['Charlie'] = 35;
  print(leeftijd); // Output: {Alice: 30, Bob: 25, Charlie: 35}

  // Wijzigen van een bestaande waarde
  leeftijd['Alice'] = 31;
  print(leeftijd); // Output: {Alice: 31, Bob: 25, Charlie: 35}
}

Verwijderen van sleutel-waardeparen uit een Map

Je kunt sleutel-waardeparen verwijderen met behulp van de remove methode.

void main() {
  Map<String, int> leeftijd = {
    'Alice': 30,
    'Bob': 25,
    'Charlie': 35
  };

  leeftijd.remove('Bob');
  print(leeftijd); // Output: {Alice: 30, Charlie: 35}
}

Map methoden en eigenschappen

Dart biedt verschillende methoden en eigenschappen voor het werken met mappen, zoals het controleren of een sleutel bestaat, het verkrijgen van alle sleutels of waarden, en het itereren over de paren.

void main() {
  Map<String, int> leeftijd = {
    'Alice': 30,
    'Bob': 25,
    'Charlie': 35
  };

  // Controleren of een sleutel bestaat
  bool bevatAlice = leeftijd.containsKey('Alice');
  print(bevatAlice); // Output: true

  bool bevatDave = leeftijd.containsKey('Dave');
  print(bevatDave); // Output: false

  // Alle sleutels verkrijgen
  Iterable<String> sleutels = leeftijd.keys;
  print(sleutels); // Output: (Alice, Bob, Charlie)

  // Alle waarden verkrijgen
  Iterable<int> waarden = leeftijd.values;
  print(waarden); // Output: (30, 25, 35)

  // Itereren over sleutel-waardeparen
  leeftijd.forEach((sleutel, waarde) {
    print('$sleutel: $waarde');
  });

  // Output:
  // Alice: 30
  // Bob: 25
  // Charlie: 35
}

Een Map in Dart is een collectie van sleutel-waardeparen die gebruikt kunnen worden om gegevens op te slaan en snel op te zoeken op basis van sleutels. Je kunt sleutel-waardeparen toevoegen, verwijderen, en bewerken. Mappen ondersteunen verschillende methoden en eigenschappen voor manipulatie en iteratie.

Methodes

putIfAbsent(K key, V ifAbsent()): Voegt een waarde toe voor de sleutel als deze nog niet aanwezig is.

Map<String, int> ages = {'Alice': 30};
ages.putIfAbsent('Bob', () => 25); // {'Alice': 30, 'Bob': 25}

containsKey(Object key): Controleert of de map de opgegeven sleutel bevat.

Map<String, int> ages = {'Alice': 30};
bool hasAlice = ages.containsKey('Alice'); // true

remove(Object key): Verwijdert het element met de opgegeven sleutel.

Map<String, int> ages = {'Alice': 30};
ages.remove('Alice'); // {}

length: Geeft het aantal elementen in de map.

Map<String, int> ages = {'Alice': 30, 'Bob': 25};
int len = ages.length; // 2

isEmpty en isNotEmpty: Controleert of de map leeg is of niet.

Map<String, int> ages = {};
bool empty = ages.isEmpty; // true

keys en values: Geeft een iterable van de sleutels of waarden in de map.

Map<String, int> ages = {'Alice': 30, 'Bob': 25};
Iterable<String> keys = ages.keys; // ('Alice', 'Bob')
Iterable<int> values = ages.values; // (30, 25)