Dart:
Usando arrays associativos
Como:
Dart oferece uma sintaxe simples para criar e manipular Maps. Abaixo estão exemplos demonstrando operações básicas como criação, adição de elementos e busca de valores.
void main() {
// Criando um map
var fruitColors = {
'apple': 'red',
'banana': 'yellow',
'grape': 'purple'
};
// Adicionando um novo par chave-valor
fruitColors['orange'] = 'orange';
// Acessando um valor pela sua chave
print(fruitColors['apple']); // Saída: red
// Atualizando um valor
fruitColors['banana'] = 'green';
// Iterando sobre o Map
fruitColors.forEach((fruit, color) {
print('$fruit: $color');
});
// Saída Exemplar:
// apple: red
// banana: green
// grape: purple
// orange: orange
}
Para estruturas de dados complexas ou funcionalidades estendidas, programadores Dart frequentemente contam com bibliotecas adicionais. Uma dessas bibliotecas é collection
, que fornece tipos de coleções avançados e utilidades. Embora collection
não modifique a forma básica como os Maps são manipulados, ela os enriquece com funções de utilidade e tipos de coleção mais sofisticados. Veja como você poderia usá-la para uma tarefa mais específica, como ordenar um Map pelos seus valores:
Primeiro, assegure que o pacote collection
está incluído no seu arquivo pubspec.yaml
:
dependencies:
collection: ^1.15.0
Então, você pode usá-lo da seguinte forma:
import 'package:collection/collection.dart';
void main() {
var fruitColors = {
'apple': 'red',
'banana': 'yellow',
'grape': 'purple',
'orange': 'orange'
};
// Ordenando o Map pelos seus valores (cores)
var sortedFruitsByColor = SplayTreeMap.from(
fruitColors,
(key1, key2) => fruitColors[key1]!.compareTo(fruitColors[key2]!)
);
print(sortedFruitsByColor);
// Saída:
// {orange: orange, apple: red, banana: yellow, grape: purple}
}
Este exemplo demonstra a ordenação das entradas de um Map baseada em seus valores, mostrando como Dart e seu ecossistema vibrante podem manejar de forma ágil arrays associativos para manipulação de dados mais sofisticada.