How to Sort a Map by Keys in Dart - Step by Step Examples
How to Sort a Map by Keys in Dart ?
Answer
To sort a map by keys in Dart, you can use the `SplayTreeMap` from the `dart:collection` library, which automatically sorts the keys. Alternatively, you can convert the map to a list of key-value pairs, sort the list, and then convert it back to a map.
✐ Examples
1 Sorting a Map by Keys Using SplayTreeMap
We can sort a map by keys in Dart using the `SplayTreeMap`, which automatically sorts the keys.
For example,
- We start by importing the `dart:collection` library, which provides the `SplayTreeMap` class.
- We declare and initialize a map named
originalMap
with some key-value pairs. In this example, the map has integer keys and string values. - We create a `SplayTreeMap` named
sortedMap
and pass the `originalMap` to it, which automatically sorts the keys. - We print the sorted map to the console using the
print
function to verify the sorting.
Dart Program
import 'dart:collection';
void main() {
// Declare and initialize a map
Map<int, String> originalMap = {
3: 'three',
1: 'one',
2: 'two'
};
// Create a SplayTreeMap to sort the keys
SplayTreeMap<int, String> sortedMap = SplayTreeMap.from(originalMap);
// Print the sorted map
print('Sorted Map by Keys:');
sortedMap.forEach((key, value) => print('$key: $value'));
}
Output
Sorted Map by Keys: 1: one 2: two 3: three
2 Sorting a Map by Keys Using List Conversion
We can sort a map by keys in Dart by converting the map to a list of key-value pairs, sorting the list, and then converting it back to a map.
For example,
- We declare and initialize a map named
originalMap
with some key-value pairs. In this example, the map has integer keys and string values. - We convert the map to a list of key-value pairs and sort the list based on the keys.
- We create a new map from the sorted list of key-value pairs.
- We print the sorted map to the console using the
print
function to verify the sorting.
Dart Program
void main() {
// Declare and initialize a map
Map<int, String> originalMap = {
3: 'three',
1: 'one',
2: 'two'
};
// Convert the map to a list of key-value pairs and sort the list by keys
var sortedEntries = originalMap.entries.toList()
..sort((a, b) => a.key.compareTo(b.key));
// Create a new map from the sorted list of key-value pairs
Map<int, String> sortedMap = {
for (var entry in sortedEntries) entry.key: entry.value
};
// Print the sorted map
print('Sorted Map by Keys:');
sortedMap.forEach((key, value) => print('$key: $value'));
}
Output
Sorted Map by Keys: 1: one 2: two 3: three
3 Sorting a Map by Keys in Descending Order Using SplayTreeMap
We can sort a map by keys in descending order in Dart using the `SplayTreeMap` with a custom comparator.
For example,
- We start by importing the `dart:collection` library, which provides the `SplayTreeMap` class.
- We declare and initialize a map named
originalMap
with some key-value pairs. In this example, the map has integer keys and string values. - We create a `SplayTreeMap` named
sortedMap
with a custom comparator to sort the keys in descending order, and pass the `originalMap` to it. - We print the sorted map to the console using the
print
function to verify the sorting.
Dart Program
import 'dart:collection';
void main() {
// Declare and initialize a map
Map<int, String> originalMap = {
3: 'three',
1: 'one',
2: 'two'
};
// Create a SplayTreeMap with a custom comparator for descending order
SplayTreeMap<int, String> sortedMap = SplayTreeMap<int, String>((a, b) => b.compareTo(a))
..addAll(originalMap);
// Print the sorted map
print('Sorted Map by Keys (Descending):');
sortedMap.forEach((key, value) => print('$key: $value'));
}
Output
Sorted Map by Keys (Descending): 3: three 2: two 1: one
Summary
In this tutorial, we learned How to Sort a Map by Keys in Dart language with well detailed examples.
More Dart Maps Tutorials
- How to create an Empty Map in Dart ?
- How to create a Map with Initial Key-Value Pairs in Dart ?
- How to Print a Map in Dart ?
- How to Add a Key-Value Pair to a Map in Dart ?
- How to Set a Default Value for a Key in a Map in Dart ?
- How to Update the Value for a Key in a Map in Dart ?
- How to Check if a Map is Empty in Dart ?
- How to Check if a Key Exists in a Map in Dart ?
- How to Check if a Value Exists in a Map in Dart ?
- How to Get the Value Associated with a Key in a Map in Dart ?
- How to Remove a Key-Value Pair from a Map in Dart ?
- How to Remove Key-Value Pairs from a Map Based on Values in Dart ?
- How to Clear All Key-Value Pairs from a Map in Dart ?
- How to Iterate Over Keys in a Map in Dart ?
- How to Iterate Over Values in a Map in Dart ?
- How to Iterate Over Entries (Key-Value Pairs) in a Map in Dart ?
- How to Get the Size (Number of Key-Value Pairs) of a Map in Dart ?
- How to Convert a Map to an Array of Keys in Dart ?
- How to Convert a Map to an Array of Values in Dart ?
- How to Convert a Map to an Array of Key-Value Pairs in Dart ?
- How to Merge Two Maps in Dart ?
- How to Check if Two Maps are Equal in Dart ?
- How to Sort a Map by Keys in Dart ?
- How to Sort a Map by Values in Dart ?
- How to Filter a Map Based on Keys in Dart ?
- How to Filter a Map Based on Values in Dart ?
- How to Reduce Values in a Map to a Single Value in Dart ?
- How to Convert an Array of Key-Value Pairs to a Map in Dart ?
- How to Convert a Map to a JSON String in Dart ?
- How to Convert a JSON String to a Map in Dart ?
- How to Swap Keys and Values in a Map in Dart ?
- How to Create a Map of Maps in Dart ?
- How to Iterate Over a Map of Maps in Dart ?