Kotlin - Liste dans une Liste de filtrage

J'ai ces classes de données:

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>)

Je veux filtrer la liste des RouteType par type et filtrer la liste des RouteItem par id.

Mon code maintenant:

//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]!! }
                }

Comment faire .map retour liste avec liste filtrée-t-il? Ou peut-être il ya une autre façon?

MODIFIER

Merci, mais flatmap pas exactement ce dont j'ai besoin, je pense. flatmap renvoie la liste imbriquée(List<RouteItem>), mais je veux List<RouteType>.

Je l'ai eu par ce code:

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

Est-il une autre façon de l'obtenir?

InformationsquelleAutor Michael | 2016-04-13