Korzystanie z tablic asocjacyjnych

Dart:
Korzystanie z tablic asocjacyjnych

Jak to zrobić:

Dart oferuje prostą składnię do tworzenia i manipulowania Mapami. Poniżej znajdują się przykłady demonstrujące podstawowe operacje, takie jak tworzenie, dodawanie elementów i pobieranie wartości.

void main() {
  // Tworzenie mapy
  var koloryOwocow = {
    'jabłko': 'czerwone',
    'banan': 'żółty',
    'winogrono': 'fioletowe'
  };

  // Dodawanie nowej pary klucz-wartość
  koloryOwocow['pomarańcza'] = 'pomarańczowy';

  // Dostęp do wartości przez jej klucz
  print(koloryOwocow['jabłko']); // Wynik: czerwone

  // Aktualizacja wartości
  koloryOwocow['banan'] = 'zielony';

  // Iteracja po Mapie
  koloryOwocow.forEach((owoc, kolor) {
    print('$owoc: $kolor');
  });
  // Przykładowy wynik:
  // jabłko: czerwone
  // banan: zielony
  // winogrono: fioletowe
  // pomarańcza: pomarańczowy
}

Dla złożonych struktur danych lub rozszerzonej funkcjonalności, programiści Dart często polegają na dodatkowych bibliotekach. Jedną z takich bibliotek jest collection, która zapewnia zaawansowane typy kolekcji i narzędzia. Chociaż collection nie modyfikuje podstawowego sposobu obsługi Map, wzbogaca je o funkcje pomocnicze i bardziej wyrafinowane typy kolekcji. Oto jak można jej używać do bardziej specyficznych zadań, takich jak sortowanie Mapy według jej wartości:

Najpierw upewnij się, że pakiet collection jest zawarty w twoim pliku pubspec.yaml:

dependencies:
  collection: ^1.15.0

Następnie możesz go używać w następujący sposób:

import 'package:collection/collection.dart';

void main() {
  var koloryOwocow = {
    'jabłko': 'czerwone',
    'banan': 'żółty',
    'winogrono': 'fioletowe',
    'pomarańcza': 'pomarańczowy'
  };

  // Sortowanie Mapy według jej wartości (kolorów)
  var posortowaneOwoceWedlugKoloru = SplayTreeMap.from(
    koloryOwocow,
    (klucz1, klucz2) => koloryOwocow[klucz1]!.compareTo(koloryOwocow[klucz2]!)
  );

  print(posortowaneOwoceWedlugKoloru);
  // Wynik:
  // {pomarańcza: pomarańczowy, jabłko: czerwone, banan: żółty, winogrono: fioletowe}
}

Ten przykład demonstruje sortowanie wpisów Mapy na podstawie ich wartości, pokazując, jak Dart i jego dynamiczny ekosystem mogą zręcznie radzić sobie z tablicami asocjacyjnymi do bardziej wyrafinowanej manipulacji danymi.