2017-11-11 35 views
1

我有这样的结构:如何从对象的集合提取地图,用钥匙作为对象相同的领域之一,价值的实际对象

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

我希望能够使用一些功能在科特林得到结果是这样的:

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

因此,例如,我有LocationRSSIEvents的列表,但它内部的每个LocationRSSIEvent可以包含不同的标识符对象。我希望能够提取具有与将包含标识符作为此映射的键的映射相同的标识符的LocationRSSIEvents,以及具有与值相同的标识符的那些LocationRSSIEvents的列表。

我希望一切都清楚,有没有简单的方法来实现这个?

回答

1

好像你只是希望从标准库中的groupBy方法:

rssiEvents.groupBy { it.identifier }