如何将地图转换为新地图并处理 scala 中可能重复的新密钥

问题描述 投票:0回答:0

我想将地图转换为新地图,新地图的新密钥将由旧密钥生成,但新密钥可能会重复,因此我需要为同一个新密钥聚合结果。

例如:

val oldMap = Map(2 -> 111, 3 -> 222, 4 -> 333)

新密钥将由某些功能生成,例如k => k % 2。因此,新密钥将是 01。对于相同的新密钥,我想总结结果(或传递一些聚合函数)

结果新地图:

Map(0 -> 444, 1 -> 222)

我试了

oldMap.groupBy( k => k._1 % 2)
但是结果是
Map(0 -> Map(2 -> 111, 4 -> 333), 1 -> Map(3 -> 222))
,值是旧地图的一部分。而且我不知道如何传递聚合函数。

scala dictionary functional-programming aggregate-functions
© www.soinside.com 2019 - 2024. All rights reserved.