Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin flatmap将键和集的列表映射到成对列表中_Kotlin - Fatal编程技术网

Kotlin flatmap将键和集的列表映射到成对列表中

Kotlin flatmap将键和集的列表映射到成对列表中,kotlin,Kotlin,我正在上一门在线课程,并且误读了一个问题(这就是为什么我认为发布这个问题是可以的,因为答案与课程上的问题无关!) 我想做的是创建一个司机和乘客的所有实例的列表,可能是成对的,我只是不知道怎么做 trips.map {t -> Pair (t.driver, t.passengers)} 给我弄到了一些东西,但显然留给我的是一组乘客,而不是司机:没有包装的乘客对。我找不到平面图的语法所以 trips.flatMap {t -> Pair (t.driver, t.passenge

我正在上一门在线课程,并且误读了一个问题(这就是为什么我认为发布这个问题是可以的,因为答案与课程上的问题无关!)

我想做的是创建一个司机和乘客的所有实例的列表,可能是成对的,我只是不知道怎么做

trips.map {t -> Pair (t.driver, t.passengers)} 
给我弄到了一些东西,但显然留给我的是一组乘客,而不是司机:没有包装的乘客对。我找不到平面图的语法所以

 trips.flatMap {t -> Pair (t.driver, t.passengers)} 
抱怨说这一对不合适,我理解,但我不明白我该如何解包,如何维护与驱动程序的单独链接


(我在撰写此问题时注意到的实际问题是,您可以通过单个驾驶员查找乘客,这使查找乘客变得更加容易,我已经这样做了…

因此,对于每次旅行,您都需要驾驶员/乘客的每种组合,然后您需要所有这些组合的列表?如果是的话,这样做可以吗

trips.flatMap { trip -> 
    trip.passengers.map { passenger -> 
        Pair(trip.driver, passenger) 
    } 
}

这会给你一个
列表
,如果这是你想要的?它可能包含重复项,因此您可能希望以某种方式处理该问题。

我需要一些时间才能弄清楚这一点(我在地图->平面地图路线上走得更远,我想这意味着我还没有完全掌握lambda的真正意义……是的,我意识到了这些被骗者,我以为我在寻找所有不止一次使用过任何司机的乘客,所以我会进一步处理这个列表,但后来意识到我只是在寻找一个特定的重复乘客。)c驱动程序…是的,函数式编程需要一段时间的思考。如果你运气不好,请在这里发表评论,询问更多信息,我会用更详细的解释更新我的答案。祝你好运。
 trips.flatMap {t -> Pair (t.driver, t.passengers)} 
trips.flatMap { trip -> 
    trip.passengers.map { passenger -> 
        Pair(trip.driver, passenger) 
    } 
}