我想将地图转换为新地图,新地图的新密钥将由旧密钥生成,但新密钥可能会重复,因此我需要为同一个新密钥聚合结果。
例如:
val oldMap = Map(2 -> 111, 3 -> 222, 4 -> 333)
新密钥将由某些功能生成,例如k => k % 2。因此,新密钥将是 0 和 1。对于相同的新密钥,我想总结结果(或传递一些聚合函数)
结果新地图:
Map(0 -> 444, 1 -> 222)
我试了
oldMap.groupBy( k => k._1 % 2)
但是结果是Map(0 -> Map(2 -> 111, 4 -> 333), 1 -> Map(3 -> 222))
,值是旧地图的一部分。而且我不知道如何传递聚合函数。