Рассчитать сумму Map [String, BigInt] - PullRequest
0 голосов
/ 01 октября 2019

У меня есть карта, которая состоит из значений BigInt, и я хочу вычислить общую сумму этих значений и вернуть ее на карте в качестве значения. Я пытался использовать метод суммирования или уменьшения, но каждый раз, когда я получаю либо суммы для каждого ключа, либо уменьшение значения не является членом BigInt. Как я могу это сделать? Вот код, который я использовал при уменьшении:

def calculateSum(input: Map[String, BigInt]): Map[String, BigInt] = {
    val sum = data
      .map { case (name, id) =>
        name -> input.get(name).sum
      }
      .map{ case (name, count) =>
       "result" -> count.reduce(_ + _)
      }
    sum
  }

data type: Map [String, Int]

input example: ("категория 1 "-> 0," категория 2 "-> 0," категория 3 "-> 430," категория 4 "-> 0," категория 5 "-> 0," категория 6 "-> 1400," категория 7"-> 0)

вывод пример: (" result1 "-> 1830)

1 Ответ

3 голосов
/ 01 октября 2019

Кажется, что вы хотите получить сумму значений, которую можно сделать так:

def calculateSum(input: Map[String, BigInt]): Map[String, BigInt] = {
  val sum = input.values.sum
  Map("result" -> sum)
}
...