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

Kotlin嵌套列表映射问题:如何展平混合类型列表为List<FruitUiModel>

解决Kotlin嵌套列表映射后类型混合的问题

你当前的问题出在map操作的返回类型不一致:处理热带水果时返回的是List<FruitUiModel>,非热带水果返回单个FruitUiModel,最终导致列表类型变成List<Any>,无法直接展平。

要得到纯List<FruitUiModel>,只需要把map换成flatMap,同时让两个分支都返回可迭代的集合类型,flatMap会自动把所有子集合的元素合并成一个扁平列表:

val result: List<FruitUiModel> = listOfFruits.flatMap { fruit ->
    if (fruit.type == "tropical") {
        // 直接返回转换后的热带水果列表
        fruit.tropicalFruits.map { tropicalFruit ->
            FruitUiModel(tropicalFruit.someStuff)
        }
    } else {
        // 将单个非热带水果包装成列表,统一返回类型
        listOf(FruitUiModel(fruit.type))
    }
}

关键说明

  • flatMap的作用是:对每个元素执行映射操作(返回一个集合),然后将所有集合中的元素展平为单个列表
  • 非热带水果分支用listOf()包装,确保两个分支的返回类型都是List<FruitUiModel>,避免类型不匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 11:45:57