gpt4 book ai didi

list - Kotlin - 列表过滤中的列表

转载 作者:IT老高 更新时间:2023-10-28 13:41:28 24 4
gpt4 key购买 nike

我有那些数据类:

data class RouteType(

@SerializedName("type")
val type: String,

@SerializedName("items")
val items: List<RouteItem>)


data class RouteItem(

@SerializedName("id")
val id: String,

@SerializedName("route")
private val route: List<DoubleArray>)

我想按类型过滤 RouteType 列表,并按 id 过滤其中的 RouteItem 列表。

我现在的代码:

// val filter: HashMap<String, List<String>>

val result = routeTypes // List<RouteType>
.filter { it.type in filter.keys }
.map {
routeType -> routeType.items.filter { it.id in filter[routeType.type]!! }
}

如何制作.map返回列表中包含过滤列表?或者也许还有其他方法?

编辑

谢谢,但是 flatmap不完全是我需要的,我想。 flatmap返回嵌套列表(List<RouteItem>),但我想要 List<RouteType> .

我通过这段代码得到了它:

val result = routeTypes
.filter { it.type in filter.keys }
.map {
routeType -> RouteType(
routeType.type,
routeType.items.filter { it.id in filter[routeType.type]!! })
}

还有其他方法可以得到吗?

最佳答案

由于您的数据是不可变的(这是一件好事),您需要在过滤时复制它。使用 copy 使其更具扩展性:

val result = routeTypes
.filter { it.type in filter.keys }
.map { it.copy(items = it.items.filter { it.id in filter[routeType.type]!! }) }

关于list - Kotlin - 列表过滤中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36608538/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com