У меня есть массив
val bins = Array(0,100, 250, 500, 1000, 2000, 3000)
, и вот мой кусочек кода:
private var cumulativeDelay:Map[String ,Double] = linkIds.zip(freeFlowDelay).groupBy(_._1).mapValues(l => l.map(_._2).sum)
private var cumulativeCapacity:Map[String , Double] = linkIds.zip(linkCapacity).groupBy(_._1).mapValues(l => l.map(_._2).sum)
cumulativeCapacity foreach {
case(linkId , capacity) => {
val rangeToValue = bins.zip(bins.tail)
.collectFirst { case (left, right) if capacity >= left && capacity <= right =>
Map(s"$left-$right" -> cumulativeDelay.get(linkId))
}
.getOrElse(Map.empty[String, Double])
}
}
Так что значение rangeToValue
приближается к Map (1000-2000 -> Some)(625)) но я хочу rangeToValue: Map [String, Double] = (1000-2000 -> 625)