You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin中如何基于userId将User、Book、Order三个列表合并为单个对象

Kotlin按userId关联多列表数据实现方案

1. 定义返回结构Result类

首先声明用于承载关联结果的数据类:

data class Result(
    val user: User,
    val books: List<Book>,
    val orders: List<Order>
)

2. 关联逻辑实现

先对书籍、订单按userId做预分组,避免重复遍历提升查询效率,再匹配用户生成最终结果:

// 书籍按userId分组
val bookGroupByUserId = books.groupBy { it.userId }
// 订单按userId分组
val orderGroupByUserId = order.groupBy { it.userId }

// 生成关联结果列表
val result = users.map { user ->
    Result(
        user = user,
        books = bookGroupByUserId[user.id].orEmpty(),
        orders = orderGroupByUserId[user.id].orEmpty()
    )
}

结果说明

基于你提供的示例输入,最终生成的result列表包含3个元素:

  • u1对应结果:包含2本关联书籍、3个关联订单
  • u2对应结果:包含1本关联书籍、1个关联订单
  • u3对应结果:无关联书籍和订单,两个列表均为空
    不属于现有用户的关联数据(如userId为ux的书籍)会自动过滤,不会纳入结果。

内容的提问来源于stack exchange,提问作者Sharan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 04:45:03