How to Sort a Map by Keys in Dart


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,

  1. We start by importing the `dart:collection` library, which provides the `SplayTreeMap` class.
  2. We declare and initialize a map named originalMap with some key-value pairs. In this example, the map has integer keys and string values.
  3. We create a `SplayTreeMap` named sortedMap and pass the `originalMap` to it, which automatically sorts the keys.
  4. 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,

  1. We declare and initialize a map named originalMap 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 and sort the list based on the keys.
  3. We create a new map from the sorted list of key-value pairs.
  4. 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,

  1. We start by importing the `dart:collection` library, which provides the `SplayTreeMap` class.
  2. We declare and initialize a map named originalMap with some key-value pairs. In this example, the map has integer keys and string values.
  3. We create a `SplayTreeMap` named sortedMap with a custom comparator to sort the keys in descending order, and pass the `originalMap` to it.
  4. 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

  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 ?