次のシグネチャを使用してメソッドを作成しようとしています。
def buildSumMap(minInterval:Int, mappes:SortedMap[Int, Long]):SortedMap[Int, Long] = {...}
(key:Int,value:Long)
メソッド内で、 「マップ」の各ペアに次の疑似コードを適用して、新しいマップを返したいと考えています
。
If(key + minInterval > nextKey) {
value += nextValue
}
else {
//Forget previous key(s) and return current key with sum of all previous values
return (key, value)
}
例: ソース Map が((10 -> 5000), (20 -> 5000), (25 -> 7000), (40 -> 13000))
あり、minInterval を 10 に定義した場合、結果の Map は次のようになります。
((10 -> 5000), (25 -> 12000), (40 -> 13000))
キーと値を個別にフィルタリングするキーと値を変換する例はたくさん見つかりましたが、値を保持しながらキーを削除する例は今のところありません。