Kotlin 如何将每个项目都有一个列表的项目列表展开?
如果我有这样的东西:Kotlin 如何将每个项目都有一个列表的项目列表展开?,kotlin,collections,flatten,Kotlin,Collections,Flatten,如果我有这样的东西: data class BaseItem { val id: Int val itemName: String val type: String val relatedItems: List<BaseItem>? } list.flatMap { item -> mutableListOf(item).apply { item.relatedItems?.let(::addAll) } } 数据类基本项{
data class BaseItem {
val id: Int
val itemName: String
val type: String
val relatedItems: List<BaseItem>?
}
list.flatMap { item ->
mutableListOf(item).apply {
item.relatedItems?.let(::addAll)
}
}
数据类基本项{
val id:Int
val itemName:String
val类型:String
val相关项目:列表?
}
如果我有一个
列表
,我如何使用flat/map等创建一个新的列表
,其中包含每个基本项
的条目,然后是子组中的所有项
?您可以这样做:
data class BaseItem {
val id: Int
val itemName: String
val type: String
val relatedItems: List<BaseItem>?
}
list.flatMap { item ->
mutableListOf(item).apply {
item.relatedItems?.let(::addAll)
}
}
在这种方法中,如何动态更改
item
的成员变量?例如,在执行mutableListOf(item)
时,我希望有一个标志true,而let(::addAll)
应该将该标志设为false,因为您使用的是一个数据类,您可以执行mutableListOf(item.copy(flag=true))
这样就可以了!但如果我理解了这一点,它会为每个项创建一个新的ArrayList
。有没有更有效的方法?