如何根据相似值对列表进行分组

How can I group a list based on a similar value

我有一个高分列表,我想将其分组为高分所属的每个类别的列表。

我的数据类是这样的

data class HighScore(val word: Word)
data class Word(val category: String)

我正在做这样的事情。

val highScores = listOf<HighScore>(...)
val groupedScores = highScores.groupBy{ it:HighScore
    it.word.category
}

我想做的是获得所有具有相似类别的高分并将它们放入单独的列表中,我确信 kotlin 中必须有一个函数,但我似乎只能查找说明如何按数值而不是谓词对列表进行分组的教程。

您找到了带有谓词的正确 groupBy 函数,但是您的 lambda 语法是错误的。

或者添加一个箭头:

val groupedScores = highScores.groupBy{ it:HighScore ->
    it.word.category
}

或完全删除参数以使用隐式单个参数 it:

val groupedScores = highScores.groupBy{
    it.word.category
}