Kotlin Tutorials

Kotlin Set maxOfWith()
Syntax & Examples

Set.maxOfWith() extension function

The maxOfWith() extension function in Kotlin returns the largest value according to the provided comparator among all values produced by the selector function applied to each element in the collection.


Syntax of Set.maxOfWith()

The syntax of Set.maxOfWith() extension function is:

fun <T, R> Set<T>.maxOfWith(comparator: Comparator<in R>, selector: (T) -> R): R

This maxOfWith() extension function of Set returns the largest value according to the provided comparator among all values produced by selector function applied to each element in the collection.

Parameters

ParameterOptional/RequiredDescription
comparatorrequiredThe comparator used to compare the values.
selectorrequiredA function that takes an element and returns a value to be compared.

Return Type

Set.maxOfWith() returns value of type R.



✐ Examples

1 Finding the maximum value among integers with a custom comparator

Using maxOfWith() to find the maximum value among integers in a set with a custom comparator.

For example,

  1. Create a set of integers.
  2. Use maxOfWith() with a custom comparator and a selector function that transforms each integer.
  3. Print the resulting maximum value.

Kotlin Program

fun main() {
    val numbers = setOf(1, 2, 3, 4, 5)
    val maxValue = numbers.maxOfWith(compareBy { it }, { it.toDouble() })
    println(maxValue)
}

Output

5.0

2 Finding the maximum length of strings with a custom comparator

Using maxOfWith() to find the maximum length among strings in a set with a custom comparator.

For example,

  1. Create a set of strings.
  2. Use maxOfWith() with a custom comparator and a selector function that returns the length of each string.
  3. Print the resulting maximum length.

Kotlin Program

fun main() {
    val strings = setOf("one", "two", "three")
    val maxLength = strings.maxOfWith(compareBy { it }, { it.length.toDouble() })
    println(maxLength)
}

Output

5.0

3 Finding the maximum age among custom objects with a custom comparator

Using maxOfWith() to find the maximum age among custom objects in a set with a custom comparator.

For example,

  1. Create a data class.
  2. Create a set of custom objects.
  3. Use maxOfWith() with a custom comparator and a selector function that returns the age of each object.
  4. Print the resulting maximum age.

Kotlin Program

data class Person(val name: String, val age: Int)

fun main() {
    val people = setOf(Person("Alice", 30), Person("Bob", 25), Person("Charlie", 35))
    val maxAge = people.maxOfWith(compareBy { it }, { it.age.toDouble() })
    println(maxAge)
}

Output

35.0

Summary

In this Kotlin tutorial, we learned about maxOfWith() extension function of Set: the syntax and few working examples with output and detailed explanation for each example.