How to Sort a Map by Values in Dart - Step by Step Examples
How to Sort a Map by Values in Dart ?
Answer
To sort a map by values in Dart, you can convert the map to a list of key-value pairs, sort the list by values, and then convert it back to a map. This method provides a straightforward way to sort the map based on values.
✐ Examples
1 Sorting a Map by Values Using List Conversion
We can sort a map by values in Dart by converting the map to a list of key-value pairs, sorting the list by values, and then converting it back to a map.
For example,
- We start by declaring and initializing a map named
myMap
with some key-value pairs. In this example, the map has string keys and integer values. - We convert the map to a list of key-value pairs using the
entries.toList
method. - We sort the list by values using the
sort
method with a custom comparator. - We create a new map from the sorted list using the
Map.fromEntries
method. - 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<String, int> myMap = {
'apple': 3,
'banana': 1,
'cherry': 2
};
// Convert the map to a list of key-value pairs
var sortedEntries = myMap.entries.toList()
..sort((a, b) => a.value.compareTo(b.value));
// Create a new map from the sorted list of key-value pairs
Map<String, int> sortedMap = Map.fromEntries(sortedEntries);
// Print the sorted map
print('Sorted Map by Values:');
sortedMap.forEach((key, value) => print('$key: $value'));
}
Output
Sorted Map by Values: banana: 1 cherry: 2 apple: 3
2 Sorting a Map by Values in Descending Order
We can sort a map by values in descending order in Dart by converting the map to a list of key-value pairs, sorting the list by values in descending order, and then converting it back to a map.
For example,
- We start by declaring and initializing a map named
myMap
with some key-value pairs. In this example, the map has string keys and integer values. - We convert the map to a list of key-value pairs using the
entries.toList
method. - We sort the list by values in descending order using the
sort
method with a custom comparator. - We create a new map from the sorted list using the
Map.fromEntries
method. - 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<String, int> myMap = {
'apple': 3,
'banana': 1,
'cherry': 2
};
// Convert the map to a list of key-value pairs
var sortedEntries = myMap.entries.toList()
..sort((a, b) => b.value.compareTo(a.value));
// Create a new map from the sorted list of key-value pairs
Map<String, int> sortedMap = Map.fromEntries(sortedEntries);
// Print the sorted map
print('Sorted Map by Values (Descending):');
sortedMap.forEach((key, value) => print('$key: $value'));
}
Output
Sorted Map by Values (Descending): apple: 3 cherry: 2 banana: 1
3 Sorting a Map with Numeric Keys by Values
We can sort a map with numeric keys by values in Dart by converting the map to a list of key-value pairs, sorting the list by values, and then converting it back to a map.
For example,
- We start by declaring and initializing a map named
myMap
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 using the
entries.toList
method. - We sort the list by values using the
sort
method with a custom comparator. - We create a new map from the sorted list using the
Map.fromEntries
method. - 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> myMap = {
3: 'three',
1: 'one',
2: 'two'
};
// Convert the map to a list of key-value pairs
var sortedEntries = myMap.entries.toList()
..sort((a, b) => a.value.compareTo(b.value));
// Create a new map from the sorted list of key-value pairs
Map<int, String> sortedMap = Map.fromEntries(sortedEntries);
// Print the sorted map
print('Sorted Map by Values:');
sortedMap.forEach((key, value) => print('$key: $value'));
}
Output
Sorted Map by Values: 1: one 2: two 3: three
Summary
In this tutorial, we learned How to Sort a Map by Values 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 ?