Assosiatiivisten taulukoiden käyttö

Dart:
Assosiatiivisten taulukoiden käyttö

Miten:

Dart tarjoaa suoraviivaisen syntaksin Map-tietorakenteiden luomiseen ja käsittelyyn. Alla on esimerkkejä perustoiminnoista, kuten luomisesta, elementtien lisäämisestä ja arvojen hakemisesta.

void main() {
  // Kartan luominen
  var hedelmanVärit = {
    'omena': 'punainen',
    'banaani': 'keltainen',
    'viinirypäle': 'violetti'
  };

  // Uuden avain-arvo -parin lisääminen
  hedelmanVärit['appelsiini'] = 'oranssi';

  // Arvon hakeminen avaimella
  print(hedelmanVärit['omena']); // Tuloste: punainen

  // Arvon päivittäminen
  hedelmanVärit['banaani'] = 'vihreä';

  // Iterointi Mapin yli
  hedelmanVärit.forEach((hedelma, vari) {
    print('$hedelma: $vari');
  });
  // Esimerkkituloste:
  // omena: punainen
  // banaani: vihreä
  // viinirypäle: violetti
  // appelsiini: oranssi
}

Monimutkaisten tietorakenteiden tai laajennetun toiminnallisuuden tapauksessa Dart ohjelmoijat turvautuvat usein lisäkirjastoihin. Yksi tällainen kirjasto on collection, joka tarjoaa edistyneitä kokoelmatyyppejä ja apuvälineitä. Vaikka collection ei muuta Map-tietorakenteiden peruskäyttöä, se rikastuttaa niitä hyödyllisillä funktioilla ja monimutkaisemmilla kokoelmatyypeillä. Tässä on, miten voit käyttää sitä tietyn tehtävän suorittamiseen, kuten Mapin järjestämiseen sen arvojen mukaan:

Varmista ensin, että collection -paketti sisältyy pubspec.yaml -tiedostoosi:

dependencies:
  collection: ^1.15.0

Sen jälkeen voit käyttää sitä seuraavasti:

import 'package:collection/collection.dart';

void main() {
  var hedelmanVärit = {
    'omena': 'punainen',
    'banaani': 'keltainen',
    'viinirypäle': 'violetti',
    'appelsiini': 'oranssi'
  };

  // Järjestää Mapin sen arvojen (värien) mukaan
  var jarjestetytHedelmatVarinMukaan = SplayTreeMap.from(
    hedelmanVärit,
    (avain1, avain2) => hedelmanVärit[avain1]!.compareTo(hedelmanVärit[avain2]!)
  );

  print(jarjestetytHedelmatVarinMukaan);
  // Tuloste:
  // {appelsiini: oranssi, omena: punainen, banaani: keltainen, viinirypäle: violetti}
}

Tämä esimerkki demonstroi Map-tietueiden järjestämistä niiden arvojen perusteella, ja se näyttää, miten Dart ja sen elinvoimainen ekosysteemi voivat näppärästi käsitellä associatiivisia taulukoita monimutkaisempaan datan käsittelyyn.