Dart:
Використання асоціативних масивів
Як це зробити:
Dart пропонує простий синтаксис для створення та маніпулювання Мапами. Нижче наведені приклади, що демонструють базові операції, такі як створення, додавання елементів і отримання значень.
void main() {
// Створення мапи
var fruitColors = {
'apple': 'red',
'banana': 'yellow',
'grape': 'purple'
};
// Додавання нової пари ключ-значення
fruitColors['orange'] = 'orange';
// Доступ до значення за його ключем
print(fruitColors['apple']); // Вивід: red
// Оновлення значення
fruitColors['banana'] = 'green';
// Ітерація по Мапі
fruitColors.forEach((fruit, color) {
print('$fruit: $color');
});
// Приклад виводу:
// apple: red
// banana: green
// grape: purple
// orange: orange
}
Для роботи зі складними структурами даних або розширення функціональності, програмісти Dart часто покладаються на додаткові бібліотеки. Однією з таких бібліотек є collection
, яка надає розширені типи колекцій та утиліти. Хоча collection
не змінює основних принципів роботи з Мапами, вона збагачує їх утилітами та більш складними типами колекцій. Ось як ви можете її використати для більш конкретного завдання, як-от сортування Мапи за її значеннями:
Спочатку, переконайтеся, що пакет collection
включений до вашого файлу pubspec.yaml
:
dependencies:
collection: ^1.15.0
Потім, ви можете використовувати її наступним чином:
import 'package:collection/collection.dart';
void main() {
var fruitColors = {
'apple': 'red',
'banana': 'yellow',
'grape': 'purple',
'orange': 'orange'
};
// Сортування Мапи за її значеннями (кольорами)
var sortedFruitsByColor = SplayTreeMap.from(
fruitColors,
(key1, key2) => fruitColors[key1]!.compareTo(fruitColors[key2]!)
);
print(sortedFruitsByColor);
// Вивід:
// {orange: orange, apple: red, banana: yellow, grape: purple}
}
Цей приклад демонструє сортування записів Мапи на основі їх значень, показуючи, як Dart та його жвавий екосистема можуть спритно обробляти асоціативні масиви для більш складної маніпуляції даними.