对ArrayList(Kotlin)中的连续重复值进行计数
我想确定Kotlin中ArrayList中连续重复字符串的数量。 我所拥有的东西大致如下:对ArrayList(Kotlin)中的连续重复值进行计数,kotlin,Kotlin,我想确定Kotlin中ArrayList中连续重复字符串的数量。 我所拥有的东西大致如下: val数组:ArrayList=arrayListOf(“培训”、“培训”、“评估”、“培训”、“评估”、“评估”) 其中,我想要的输出是对连续重复元素进行计数的内容,如: [“培训”、“2”]、[“评估”、“1”]、[“培训”、“1”]、[“评估”、“2”]或更简单/更干净的东西。 我在Python中找到了类似的解决方案。但我正在寻找Kotlin版本。谢谢。您可以手动构建列表,如下所示: fun cou
val数组:ArrayList=arrayListOf(“培训”、“培训”、“评估”、“培训”、“评估”、“评估”)
其中,我想要的输出是对连续重复元素进行计数的内容,如:[“培训”、“2”]、[“评估”、“1”]、[“培训”、“1”]、[“评估”、“2”]
或更简单/更干净的东西。我在Python中找到了类似的解决方案。但我正在寻找Kotlin版本。谢谢。您可以手动构建列表,如下所示:
fun count(values: List<String>): List<Group> {
val groups = mutableListOf<Group>()
values.forEach {
val last = groups.lastOrNull()
if (last?.value == it) {
last.count++
} else {
groups.add(Group(it, 1))
}
}
return groups
}
data class Group(val value: String, var count: Int)
这正是我想要的,谢谢@CampbellMG!让我的整个功能更加干净:)
[Group(value=training, count=2), Group(value=assessment, count=1), Group(value=training, count=1), Group(value=assessment, count=2)]