How to Filter a Map Based on Values in Kotlin


How to Filter a Map Based on Values in Kotlin ?

Answer

To filter a map based on values in Kotlin, you can use the `filterValues` method to create a new map containing only the key-value pairs that meet the filter criteria. This method allows you to create a subset of the original map based on specific value conditions.



✐ Examples

1 Filtering a Map Based on Value Range

We can filter a map based on a range of values in Kotlin by using the `filterValues` method to create a new map containing only the key-value pairs that fall within the specified range.

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 integer values.
  2. We define the lower and upper bounds of the value range.
  3. We use the filterValues method to filter the map based on the specified value range.
  4. We print the filtered map to the console using the println function to verify the filtering.

Kotlin Program

fun main() {
    // Declare and initialize a map
    val myMap = mapOf(1 to 10, 2 to 20, 3 to 30, 4 to 40, 5 to 50)

    // Define the value range
    val lowerBound = 20
    val upperBound = 40

    // Filter the map based on the value range
    val filteredMap = myMap.filterValues { it in lowerBound..upperBound }

    // Print the filtered map
    println("Filtered Map by Value Range: $filteredMap")
}

Output

Filtered Map by Value Range: {2=20, 3=30, 4=40}

2 Filtering a Map Based on Specific Values

We can filter a map based on specific values in Kotlin by using the `filterValues` method to create a new map containing only the key-value pairs that match the specified values.

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 integer values.
  2. We define a set of specific values that we want to filter the map by.
  3. We use the filterValues method to filter the map based on the specified values.
  4. We print the filtered map to the console using the println function to verify the filtering.

Kotlin Program

fun main() {
    // Declare and initialize a map
    val myMap = mapOf(1 to 10, 2 to 20, 3 to 30, 4 to 40, 5 to 50)

    // Define the specific values to filter by
    val valuesToFilter = setOf(10, 30, 50)

    // Filter the map based on the specific values
    val filteredMap = myMap.filterValues { it in valuesToFilter }

    // Print the filtered map
    println("Filtered Map by Specific Values: $filteredMap")
}

Output

Filtered Map by Specific Values: {1=10, 3=30, 5=50}

3 Filtering a Map with String Values Based on Prefix

We can filter a map with string values based on a specific prefix in Kotlin by using the `filterValues` method to create a new map containing only the key-value pairs that have values starting with the given prefix.

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 define a prefix string that we want to filter the map by.
  3. We use the filterValues method to filter the map based on the specified prefix.
  4. We print the filtered map to the console using the println function to verify the filtering.

Kotlin Program

fun main() {
    // Declare and initialize a map
    val myMap = mapOf(1 to "apple", 2 to "banana", 3 to "apricot", 4 to "carrot", 5 to "blueberry")

    // Define the prefix to filter by
    val prefix = "ap"

    // Filter the map based on the prefix
    val filteredMap = myMap.filterValues { it.startsWith(prefix) }

    // Print the filtered map
    println("Filtered Map by Prefix: $filteredMap")
}

Output

Filtered Map by Prefix: {1=apple, 3=apricot}

Summary

In this tutorial, we learned How to Filter a Map Based on 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 ?