Kotlin ArrayList 重叠值加上?

Kotlin ArrayList overlapping value plus?

我正在使用 ArrayList。

我想得到这些的总和。

ex ) 苹果 = 9,300,香蕉 = 5,400

但是这些都是流畅添加的。

我不知道该怎么办。

class Statement_data(var name : String, var Value : Int) {

}

名称值 苹果 3,000 苹果 3,100 香蕉 2,000 橙色 1,500 苹果 3,200 浆果 3,500 香蕉 3,400 橙色 1,600

您应该使用 groupBy 运算符:https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/group-by.html

val list = listOf(
    Statement_data("Apple",9300),
    ...
)
val map = list.groupBy { it.name}

这将 return 一个 Map。然后你可以使用 sumBy 运算符,在你的情况下:

val applesCount = map["Apple"].sumBy{ it.Value }

有关详细信息,请参阅文档: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/sum-by.html

您可以按名称过滤,然后对值使用 sumBy。使用 asSequence() 是可选的,但它允许它在过滤时跳过复制列表内容。

val numApples = list.asSequence().filter { it.name == "Apple" }.sumBy(Statement_data::Value)