Kotlin
Beginner
1 min read
Sorting, Searching and Aggregating
Example
data class Student(val name: String, val grade: Int, val gpa: Double)
fun main() {
val students = listOf(
Student("Alice", 12, 3.9),
Student("Bob", 11, 3.5),
Student("Carol", 12, 3.7),
Student("Dave", 11, 3.8),
Student("Eve", 10, 4.0),
)
// Sort by grade descending, then GPA descending
val sorted = students.sortedWith(
compareByDescending<Student> { it.grade }.thenByDescending { it.gpa }
)
sorted.forEach { println("${it.name} grade=${it.grade} gpa=${it.gpa}") }
println()
// Searching
val topStudent = students.maxByOrNull { it.gpa }
println("Top student: ${topStudent?.name}") // Eve
val firstSenior = students.find { it.grade == 12 }
println("First senior: ${firstSenior?.name}") // Alice
// Aggregations
val avgGpa = students.map { it.gpa }.average()
println("Average GPA: ${"%.2f".format(avgGpa)}")
val countHighGpa = students.count { it.gpa >= 3.8 }
println("Students with GPA >= 3.8: $countHighGpa") // 3
val allPassing = students.all { it.gpa >= 2.0 }
println("All passing: $allPassing") // true
val hasPerfect = students.any { it.gpa == 4.0 }
println("Has 4.0: $hasPerfect") // true
// sumOf with selector
val totalGpa = students.sumOf { it.gpa }
println("Total GPA: $totalGpa")
}