Scala:如何找到两个以上元素的最小值?

6

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

提前感谢!


6
几乎任何类似于元素序列或某种集合的东西都有.min方法。 - Andrey Tyukin
2个回答

13
如果您有多个元素,您可以将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)

4

将集合中的所有数字相加,例如列表,并找到其中最小的数。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接