侧边栏壁纸
博主头像
Stars-One的杂货小窝博主等级

所有的创作都是有价值的

  • 累计撰写 277 篇文章
  • 累计创建 46 个标签
  • 累计收到 27 条评论

目 录CONTENT

文章目录

Kotlin的List中的相同字段的item合并为同个

Stars-one
2023-11-04 / 0 评论 / 0 点赞 / 201 阅读 / 1893 字

有个这样的需求:

我有2个List,List中的实体为AppPieData,如下代码

data class AppPieData(val name: String, val y: Int)

我需要将name相同的item,把它们的y相加最终合并为同一个item

可以使用groupBy方法,想将相同的name的item分为一组,之后遍历合并为item

val list1 = listOf(AppPieData("A", 10), AppPieData("B", 20), AppPieData("C", 30))
val list2 = listOf(AppPieData("A", 5), AppPieData("B", 15), AppPieData("D", 25))

val result = (list1 + list2)
    .groupBy { it.name }
    .map { (name, groupList) ->
        AppPieData(
            name,
            groupList.sumBy { it.y }
        )
    }
    
println(result)

最终输出:

[AppPieData(name=A, y=15), AppPieData(name=B, y=35), AppPieData(name=C, y=30), AppPieData(name=D, y=25)]
0

评论区