在一系列作为地图值的数组中的特定索引的值中查找最大值(和最小值)

Eradicator_1729

我有一个按以下方式定义的数据结构:一个映射数组,其中每个映射都有String键和Doubles数组作为值。即数组[映射[字符串,数组[双精度]]]

这种结构背后的原因是,每个字符串键都是高速公路的标识符,其值代表高速公路上交通传感器的纬度和经度。我有多条高速公路,因此需要多张地图。我现在需要做的是找到整个数据结构中所有传感器的最大和最小纬度(索引0)以及最大和最小经度(索引1)。

我肯定可以用传统的方式通过一系列循环来解决这个问题,但是我想知道在Scala中是否有一些巧妙的方法可以做到这一点(我不是Scala的专家)。最终,这不是一个非常重要的问题,因为我可以使用自己的循环来完成它。只是认为这将是一个有趣的问题,如果有人可以找到一个不错的解决方案,那就值得一试。

编辑:这是数据结构如何工作的更具体的示例。在此,R1S1表示道路#1,传感器#1等。

Array(Map(“ R1S1”-> Array(32,117),“ R1S2”-> Array(33,118)),Map(“ R2S1”-> Array(32,116),“ R2S2”-> Array(34,118)))

大卫·迷兹

如果你可以转换你的数据结构的坐标的一个部分的平面列表,那么你可以打电话minmax上。如果您可以从内部开始并找到出路:

  1. 给定最里面的Array[Double],您想要获得第一个元素(或第二个元素)。
  2. 给定包含的映射,您只想获取值。
  3. 给定包含数组,将数组的数组展平为单个数组。
  4. 取最大的结果。

从本质上讲,您可以反向执行此操作,从外部开始,仅处理容器,没有for循环。这是一个完整的示例:

// Say how to order Double values    
import Ordering.Double.IeeeOrdering

// Create a dedicated data structure for the coordinates
case class Coordinates(lat: Double, lon: Double)

// Find the minimum latitude value for your data structure
def minLat(world: Seq[Map[String, Seq[Coordinates]]]): Double =
  world               // Seq[Map[String, Seq[Coordinates]]]
    .map { _.values } // Seq[Seq[        Seq[Coordinates]]]
    .flatten          // Seq[            Seq[Coordinates] ]
    .flatten          // Seq[                Coordinates  ]
    .map { _.lat }    // Seq[                Double       ]
    .min

// Let's try it
val aWorld = Seq(Map(("a", Seq(Coordinates(-70, 40)))))
minLat(aWorld)  // -70

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

数组中的Java最小值和最大值

来自分类Dev

在.json中查找最大值和最小值

来自分类Dev

从数组中查找最小值和最大值,最小值始终为0

来自分类Dev

在Python中查找列表的最小值,最大值

来自分类Dev

在数组中查找最小值和最大值的有效方法

来自分类Dev

在数组C ++中查找最小值/最大值的索引

来自分类Dev

递归查找数组中的最小值和最大值

来自分类Dev

awk查找数组的最小值和最大值

来自分类Dev

在单个递归函数中查找数组的最大值和最小值

来自分类Dev

在Java 2D数组中查找最大值和最小值

来自分类Dev

在数组Javascript中查找最小值和最大值

来自分类Dev

C ++如何在n个元素的一维数组中查找最小值和最大值?

来自分类Dev

特定范围内Python中NumPy数组的最小值和最大值

来自分类Dev

在.json中查找最大值和最小值

来自分类Dev

从数组中查找最小值和最大值,最小值始终为0

来自分类Dev

递归查找数组中的最小值和最大值

来自分类Dev

JavaScript中数组的最小值和最大值

来自分类Dev

在C prgram中查找一系列数字的最大值和最小值(我的代码错误)

来自分类Dev

数组中的最大值和最小值

来自分类Dev

Python递归-在嵌套数组中查找最大值和最小值之和

来自分类Dev

使用C中的函数查找数组中的最大值和最小值

来自分类Dev

通过for循环查找数组中的最大值和最小值

来自分类Dev

Java –在数组中查找最小值和最大值

来自分类Dev

系列中的最小值和最大值

来自分类Dev

NodeJS:Array.reduce 在对象数组中查找最小值和最大值

来自分类Dev

在数组中查找最小值和最大值

来自分类Dev

用数组中的最小值替换最大值

来自分类Dev

在 Scala 中查找给定数组的最小值和最大值

来自分类Dev

如何在不使用地图/SQL 的情况下在列表中查找最大值和最小值?

Related 相关文章

  1. 1

    数组中的Java最小值和最大值

  2. 2

    在.json中查找最大值和最小值

  3. 3

    从数组中查找最小值和最大值,最小值始终为0

  4. 4

    在Python中查找列表的最小值,最大值

  5. 5

    在数组中查找最小值和最大值的有效方法

  6. 6

    在数组C ++中查找最小值/最大值的索引

  7. 7

    递归查找数组中的最小值和最大值

  8. 8

    awk查找数组的最小值和最大值

  9. 9

    在单个递归函数中查找数组的最大值和最小值

  10. 10

    在Java 2D数组中查找最大值和最小值

  11. 11

    在数组Javascript中查找最小值和最大值

  12. 12

    C ++如何在n个元素的一维数组中查找最小值和最大值?

  13. 13

    特定范围内Python中NumPy数组的最小值和最大值

  14. 14

    在.json中查找最大值和最小值

  15. 15

    从数组中查找最小值和最大值,最小值始终为0

  16. 16

    递归查找数组中的最小值和最大值

  17. 17

    JavaScript中数组的最小值和最大值

  18. 18

    在C prgram中查找一系列数字的最大值和最小值(我的代码错误)

  19. 19

    数组中的最大值和最小值

  20. 20

    Python递归-在嵌套数组中查找最大值和最小值之和

  21. 21

    使用C中的函数查找数组中的最大值和最小值

  22. 22

    通过for循环查找数组中的最大值和最小值

  23. 23

    Java –在数组中查找最小值和最大值

  24. 24

    系列中的最小值和最大值

  25. 25

    NodeJS:Array.reduce 在对象数组中查找最小值和最大值

  26. 26

    在数组中查找最小值和最大值

  27. 27

    用数组中的最小值替换最大值

  28. 28

    在 Scala 中查找给定数组的最小值和最大值

  29. 29

    如何在不使用地图/SQL 的情况下在列表中查找最大值和最小值?

热门标签

归档