【问题标题】:Scala: How to find the minimum of more than 2 elements?Scala:如何找到超过 2 个元素的最小值?
【发布时间】:2019-05-28 17:44:44
【问题描述】:

由于 Math.min() 函数只允许使用 2 个元素,我想知道是否还有另一个函数可以计算超过 2 个元素的最小值。

提前致谢!

【问题讨论】:

  • .min 出现在几乎任何类似于元素序列或某种集合的东西上。

标签: scala math minimum


【解决方案1】:

如果您有多个元素,您可以将调用链接到 min 方法:

Math.min(x, Math.min(y, z))

由于 scala 通过隐式将 min 方法添加到数字中,您可以编写以下看起来更漂亮的代码:

x min y min z

如果您有一个值列表并希望找到它们的最小值:

val someNumbers: List[Int] = ???
val minimum = someNumbers.min

请注意,如果列表为空,则会引发异常。从 scala 2.13.x 开始,将有一个 minOption 方法来优雅地处理这种情况。对于旧版本,您可以使用reduceOption 方法作为解决方法:

someNumbers.reduceOption(_ min _)
someNumbers.reduceOption(Math.min)

【讨论】:

    【解决方案2】:

    像列表一样添加集合中的所有数字并找到其中的最小值。

    scala> val list = List(2,3,7,1,9,4,5)
    list: List[Int] = List(2, 3, 7, 1, 9, 4, 5)
    
    scala> list.min
    res0: Int = 1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-14
      • 1970-01-01
      • 2018-01-11
      • 2017-12-09
      • 2011-02-22
      • 2012-10-22
      • 2020-04-20
      • 1970-01-01
      相关资源
      最近更新 更多