すきま風

勉強したことのメモとか

Kotlin groupingByって便利だね

問題: 生徒オブジェクトのリストがあり、クラスごとの人数を集計する

data class Student(
    val classNumber: String,
    val name: String
)

val students = listOf(
    Student("1-1", "foo"),
    Student("1-1", "bar"),
    Student("1-1", "fizz"),
    Student("1-2", "buzz"),
    Student("1-2", "fuga"),
    Student("1-3", "hoge")
)

解答: groupingByを使う

val count = students.groupingBy { it.classNumber }.eachCount()
println(count)  // => {1-1=3, 1-2=2, 1-3=1}

年に2回くらい使いたくなるが、そのたびに忘れるのでメモ。