Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 如何在映射中使用“减少到和”列表_Scala - Fatal编程技术网

Scala 如何在映射中使用“减少到和”列表

Scala 如何在映射中使用“减少到和”列表,scala,Scala,我已经生成了以下类型的映射 immutable.Map[Int,List[Double]] Map( 1 -> List(1.02), 2 -> List(0.42, 6.88)) 我无法理解如何访问映射中的List()并使用reduce对元素求和 myMap.reduce(???) 可以使用.Map()函数迭代贴图。每次迭代都会得到一个键和一个值,并且需要返回一个键和一个值。在您的情况下,键将是一个整数(1,2),我们可以直接通过它。值将是一个双精度列表,我们可以使用内置的求

我已经生成了以下类型的映射

immutable.Map[Int,List[Double]]

Map(
1 -> List(1.02),
2 -> List(0.42, 6.88))
我无法理解如何访问映射中的List()并使用reduce对元素求和

myMap.reduce(???)

可以使用
.Map()
函数迭代贴图。每次迭代都会得到一个键和一个值,并且需要返回一个键和一个值。在您的情况下,
键将是一个整数(
1
2
),我们可以直接通过它。
将是一个双精度列表,我们可以使用内置的
求和。求和

myMap.map { case (key, value) => (key, value.sum) } 
例如:

scala> val myMap = Map(1 -> List(1.02), 2 -> List(0.42, 6.88))
myMap: scala.collection.immutable.Map[Int,List[Double]] = Map(1 -> List(1.02), 2 -> List(0.42, 6.88))

scala> myMap.map { case (key, value) => (key, value.sum) } 
res0: scala.collection.immutable.Map[Int,Double] = Map(1 -> 1.02, 2 -> 7.3)


您可以将
.sum
替换为
.reduce(+)
并得到相同的答案。

您可以使用
.Map()
函数迭代映射。每次迭代都会得到一个键和一个值,并且需要返回一个键和一个值。在您的情况下,
键将是一个整数(
1
2
),我们可以直接通过它。
将是一个双精度列表,我们可以使用内置的
求和。求和

myMap.map { case (key, value) => (key, value.sum) } 
例如:

scala> val myMap = Map(1 -> List(1.02), 2 -> List(0.42, 6.88))
myMap: scala.collection.immutable.Map[Int,List[Double]] = Map(1 -> List(1.02), 2 -> List(0.42, 6.88))

scala> myMap.map { case (key, value) => (key, value.sum) } 
res0: scala.collection.immutable.Map[Int,Double] = Map(1 -> 1.02, 2 -> 7.3)


您可以将
.sum
替换为
.reduce(+)
并得到相同的答案。

您是否阅读了使用
映射的基本知识,例如访问值?我建议从那里开始。如果您有,您希望了解说明中的哪些内容?我知道我可以访问单个键myMap。(1)。减少(+uu),但是如何遍历整个映射并将列表[]转换为表示总和的双精度?例如,新映射为map[Int,Double],您是否阅读了使用
map
的基础知识,例如访问值?我建议从那里开始。如果您有,您希望了解说明中的哪些内容?我知道我可以访问单个键myMap。(1)。减少(+uu),但是如何遍历整个映射并将列表[]转换为表示总和的双精度?例如,新的映射将是map[Int,Double]谢谢,如果我使用value,是否有性能差异。reduce(+uu)将列表中的值相加?@ext2008:您在尝试时测量了什么性能差异?谢谢,如果我使用value,是否有性能差异。reduce(+u)总结列表中的值?@ext2008:您在尝试时测量了什么性能差异?