How to Sort a Map by Values in Kotlin


How to Sort a Map by Values in Kotlin ?

Answer

To sort a map by values in Kotlin, you can convert the map entries to a list, sort the list by values, and then convert it back to a map. This method allows you 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 Kotlin by converting the map entries to a list, 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 unsortedMap with some key-value pairs. In this example, the map has string keys and integer values.
  2. We convert the map entries to a list and sort the list by values using the sortedBy function.
  3. We create a new map from the sorted list of map entries using the toMap function.
  4. We print the sorted map to the console using the println function to verify the sorting.

Kotlin Program

fun main() {
    // Declare and initialize an unsorted map
    val unsortedMap = mapOf("apple" to 3, "banana" to 1, "cherry" to 2)

    // Convert the map entries to a list and sort the list by values
    val sortedEntries = unsortedMap.entries.sortedBy { it.value }

    // Create a new map from the sorted list of map entries
    val sortedMap = sortedEntries.toMap()

    // Print the sorted map
    println("Sorted Map by Values: $sortedMap")
}

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 Kotlin by converting the map entries to a list, 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 unsortedMap with some key-value pairs. In this example, the map has string keys and integer values.
  2. We convert the map entries to a list and sort the list by values in descending order using the sortedByDescending function.
  3. We create a new map from the sorted list of map entries using the toMap function.
  4. We print the sorted map to the console using the println function to verify the sorting.

Kotlin Program

fun main() {
    // Declare and initialize an unsorted map
    val unsortedMap = mapOf("apple" to 3, "banana" to 1, "cherry" to 2)

    // Convert the map entries to a list and sort the list by values in descending order
    val sortedEntries = unsortedMap.entries.sortedByDescending { it.value }

    // Create a new map from the sorted list of map entries
    val sortedMap = sortedEntries.toMap()

    // Print the sorted map
    println("Sorted Map by Values (Descending): $sortedMap")
}

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 Kotlin by converting the map entries to a list, 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 unsortedMap with some key-value pairs. In this example, the map has integer keys and string values.
  2. We convert the map entries to a list and sort the list by values using the sortedBy function.
  3. We create a new map from the sorted list of map entries using the toMap function.
  4. We print the sorted map to the console using the println function to verify the sorting.

Kotlin Program

fun main() {
    // Declare and initialize an unsorted map
    val unsortedMap = mapOf(3 to "three", 1 to "one", 2 to "two")

    // Convert the map entries to a list and sort the list by values
    val sortedEntries = unsortedMap.entries.sortedBy { it.value }

    // Create a new map from the sorted list of map entries
    val sortedMap = sortedEntries.toMap()

    // Print the sorted map
    println("Sorted Map by Values: $sortedMap")
}

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 Kotlin language with well detailed examples.




More Kotlin Maps Tutorials

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