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

Finding min and max of a given array in scala

我有一个数组如下。我想了解的是最小和最大内置函数。

val bf=Array("wheels","on","the","bus")

对于 Max,输出是 "wheels" 这是正确的,因为轮子的元素数量比其他元素多 但是当我尝试 bf.min 时。我得到的输出为 "bus"。如果 min 给出具有最小元素的元素,那么它应该是 "on"?我对吗?我在这里错过了什么?有人可以帮我理解我做错了什么吗?

min 函数使用 Java String compareTo 方法比较字符串中每个字符的 Unicode 值。

如果我们比较onbus,那么bus会更小:

@ "on".compareTo("bus")
res16: Int = 13

13ob 的整数值之差。此外,return 值为正数,这意味着左操作数大于右操作数。

on小于wheels等等:

@ "on".compareTo("wheels")
res17: Int = -8

这里我们有负值 return,这意味着左操作数小于右操作数。

在此处查看更多信息:https://www.journaldev.com/18009/java-string-compare

比较字符串时默认使用字母数字顺序。

如果你想分别得到最短或最长的字符串,你想使用minBy,maxBy。

bf.minBy(_.length)

Array#maxBy