【问题标题】:Kotlin ArrayList overlapping value plus?Kotlin ArrayList 重叠值加?
【发布时间】:2021-04-06 18:31:40
【问题描述】:

我正在使用 ArrayList。

我想得到这些的总和。

例如)苹果 = 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

【问题讨论】:

    标签: android arrays kotlin arraylist overlapping


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      您应该使用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}
      

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-27
        • 1970-01-01
        • 1970-01-01
        • 2021-02-16
        • 2021-09-12
        • 1970-01-01
        相关资源
        最近更新 更多