Dart:
Utilizzo di array associativi
Come fare:
Dart offre una sintassi semplice per creare e manipolare le Mappe. Di seguito sono riportati esempi che dimostrano operazioni di base come la creazione, l’aggiunta di elementi e il recupero di valori.
void main() {
// Creare una mappa
var coloriFrutta = {
'mela': 'rosso',
'banana': 'giallo',
'uva': 'viola'
};
// Aggiungere una nuova coppia chiave-valore
coloriFrutta['arancia'] = 'arancione';
// Accedere a un valore tramite la sua chiave
print(coloriFrutta['mela']); // Output: rosso
// Aggiornare un valore
coloriFrutta['banana'] = 'verde';
// Iterare sulla Mappa
coloriFrutta.forEach((frutto, colore) {
print('$frutto: $colore');
});
// Output di esempio:
// mela: rosso
// banana: verde
// uva: viola
// arancia: arancione
}
Per strutture dati complesse o funzionalità estese, i programmatori Dart si affidano spesso a librerie aggiuntive. Una di queste librerie è collection
, che fornisce tipi di collezione avanzati e utilità. Anche se collection
non modifica il modo di base in cui le Mappe sono gestite, le arricchisce con funzioni di utilità e tipi di collezione più sofisticati. Ecco come potresti usarlo per un compito più specifico, come ordinare una Mappa per i suoi valori:
Prima di tutto, assicurati che il pacchetto collection
sia incluso nel tuo file pubspec.yaml
:
dependencies:
collection: ^1.15.0
Poi, puoi usarlo come segue:
import 'package:collection/collection.dart';
void main() {
var coloriFrutta = {
'mela': 'rosso',
'banana': 'giallo',
'uva': 'viola',
'arancia': 'arancione'
};
// Ordinare la Mappa per i suoi valori (colori)
var fruttaOrdinataPerColore = SplayTreeMap.from(
coloriFrutta,
(chiave1, chiave2) => coloriFrutta[chiave1]!.compareTo(coloriFrutta[chiave2]!)
);
print(fruttaOrdinataPerColore);
// Output:
// {arancia: arancione, mela: rosso, banana: giallo, uva: viola}
}
Questo esempio dimostra l’ordinamento delle voci di una Mappa in base ai loro valori, mostrando come Dart e il suo ecosistema vivace possano gestire agilmente gli array associativi per una manipolazione dei dati più sofisticata.