如何整理可能包含列表的项目列表?

时间:2019-09-09 19:19:21

标签: kotlin collections flatten

如果我有这样的东西:

data class BaseItem {
  val id: Int
  val itemName: String
  val type: String
  val relatedItems: List<BaseItem>?
}

如果我有List<BaseItem>,我该如何使用平面/地图等来创建一个新的List<BaseItem>,其中将包含每个BaseItem的条目,后跟{{ 1}}?

1 个答案:

答案 0 :(得分:2)

您可以执行以下操作:

list.flatMap { item ->
    mutableListOf(item).apply {
        item.relatedItems?.let(::addAll)
    }
}