如何从对象集合中提取Map,将键作为对象的一个​​对象,并对实际对象进行赋值

时间:2017-11-11 16:43:01

标签: functional-programming kotlin

我有这样的结构:

data class LocationRSSIEvent(
    val idRSSIEvent: Long = 0,
    val identifier: Identifier,
    val rssi: Int,
    val timestampRSSIEvent: Long) : LocationEvent()

我希望能够在Kotlin中使用某些功能来获得这样的结果:

fun getRSSIMultimap(rssiEvents: Collection<LocationRSSIEvent>): Map<Identifier, List<LocationRSSIEvent>>

例如,我有一个LocationRSSIEvents列表,但其中的每个LocationRSSIEvent都可以包含不同的Identifier对象。我希望能够将包含标识符的Map具有相同标识符的LocationRSSIEvents提取为此映射的键,以及具有相同标识符的LocationRSSIEvents列表。

我希望一切都清楚,是否有一种简单的方法来实现这一目标?

1 个答案:

答案 0 :(得分:1)

您似乎只是在寻找标准库中的groupBy方法:

rssiEvents.groupBy { it.identifier }