我有这些数据类:
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]!! })
}
有没有其他方法可以得到它?