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,

  1. 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.
  2. We convert the map to a list of key-value pairs using the entries.toList method.
  3. We sort the list by values using the sort method with a custom comparator.
  4. We create a new map from the sorted list using the Map.fromEntries method.
  5. 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,

  1. 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.
  2. We convert the map to a list of key-value pairs using the entries.toList method.
  3. We sort the list by values in descending order using the sort method with a custom comparator.
  4. We create a new map from the sorted list using the Map.fromEntries method.
  5. 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,

  1. 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.
  2. We convert the map to a list of key-value pairs using the entries.toList method.
  3. We sort the list by values using the sort method with a custom comparator.
  4. We create a new map from the sorted list using the Map.fromEntries method.
  5. 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

  1. How to create an Empty Map in Dart ?
  2. How to create a Map with Initial Key-Value Pairs in Dart ?
  3. How to Print a Map in Dart ?
  4. How to Add a Key-Value Pair to a Map in Dart ?
  5. How to Set a Default Value for a Key in a Map in Dart ?
  6. How to Update the Value for a Key in a Map in Dart ?
  7. How to Check if a Map is Empty in Dart ?
  8. How to Check if a Key Exists in a Map in Dart ?
  9. How to Check if a Value Exists in a Map in Dart ?
  10. How to Get the Value Associated with a Key in a Map in Dart ?
  11. How to Remove a Key-Value Pair from a Map in Dart ?
  12. How to Remove Key-Value Pairs from a Map Based on Values in Dart ?
  13. How to Clear All Key-Value Pairs from a Map in Dart ?
  14. How to Iterate Over Keys in a Map in Dart ?
  15. How to Iterate Over Values in a Map in Dart ?
  16. How to Iterate Over Entries (Key-Value Pairs) in a Map in Dart ?
  17. How to Get the Size (Number of Key-Value Pairs) of a Map in Dart ?
  18. How to Convert a Map to an Array of Keys in Dart ?
  19. How to Convert a Map to an Array of Values in Dart ?
  20. How to Convert a Map to an Array of Key-Value Pairs in Dart ?
  21. How to Merge Two Maps in Dart ?
  22. How to Check if Two Maps are Equal in Dart ?
  23. How to Sort a Map by Keys in Dart ?
  24. How to Sort a Map by Values in Dart ?
  25. How to Filter a Map Based on Keys in Dart ?
  26. How to Filter a Map Based on Values in Dart ?
  27. How to Reduce Values in a Map to a Single Value in Dart ?
  28. How to Convert an Array of Key-Value Pairs to a Map in Dart ?
  29. How to Convert a Map to a JSON String in Dart ?
  30. How to Convert a JSON String to a Map in Dart ?
  31. How to Swap Keys and Values in a Map in Dart ?
  32. How to Create a Map of Maps in Dart ?
  33. How to Iterate Over a Map of Maps in Dart ?