Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对ArrayList(Kotlin)中的连续重复值进行计数_Kotlin - Fatal编程技术网

对ArrayList(Kotlin)中的连续重复值进行计数

对ArrayList(Kotlin)中的连续重复值进行计数,kotlin,Kotlin,我想确定Kotlin中ArrayList中连续重复字符串的数量。 我所拥有的东西大致如下: val数组:ArrayList=arrayListOf(“培训”、“培训”、“评估”、“培训”、“评估”、“评估”) 其中,我想要的输出是对连续重复元素进行计数的内容,如: [“培训”、“2”]、[“评估”、“1”]、[“培训”、“1”]、[“评估”、“2”]或更简单/更干净的东西。 我在Python中找到了类似的解决方案。但我正在寻找Kotlin版本。谢谢。您可以手动构建列表,如下所示: fun cou

我想确定Kotlin中ArrayList中连续重复字符串的数量。 我所拥有的东西大致如下:
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)]