我有这样的结构:

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的LocationRSSIEvent的LocationRSSIEvent,以及包含与值相同的Identifier的那些LocationRSSIEvent的列表。

我希望一切都清楚了,有没有简单的方法可以做到这一点?

最佳答案

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

rssiEvents.groupBy { it.identifier }

关于functional-programming - 如何从对象集合中提取Map,以键作为对象同一字段之一,并为实际对象赋值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47240309/

10-12 05:51