在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 值。
如果我们比较on
和bus
,那么bus
会更小:
@ "on".compareTo("bus")
res16: Int = 13
13
是 o
和 b
的整数值之差。此外,return 值为正数,这意味着左操作数大于右操作数。
和on
小于wheels
等等:
@ "on".compareTo("wheels")
res17: Int = -8
这里我们有负值 return,这意味着左操作数小于右操作数。
在此处查看更多信息:https://www.journaldev.com/18009/java-string-compare
比较字符串时默认使用字母数字顺序。
如果你想分别得到最短或最长的字符串,你想使用minBy,maxBy。
bf.minBy(_.length)
我有一个数组如下。我想了解的是最小和最大内置函数。
val bf=Array("wheels","on","the","bus")
对于 Max,输出是 "wheels" 这是正确的,因为轮子的元素数量比其他元素多 但是当我尝试 bf.min 时。我得到的输出为 "bus"。如果 min 给出具有最小元素的元素,那么它应该是 "on"?我对吗?我在这里错过了什么?有人可以帮我理解我做错了什么吗?
min
函数使用 Java String compareTo
方法比较字符串中每个字符的 Unicode 值。
如果我们比较on
和bus
,那么bus
会更小:
@ "on".compareTo("bus")
res16: Int = 13
13
是 o
和 b
的整数值之差。此外,return 值为正数,这意味着左操作数大于右操作数。
和on
小于wheels
等等:
@ "on".compareTo("wheels")
res17: Int = -8
这里我们有负值 return,这意味着左操作数小于右操作数。
在此处查看更多信息:https://www.journaldev.com/18009/java-string-compare
比较字符串时默认使用字母数字顺序。
如果你想分别得到最短或最长的字符串,你想使用minBy,maxBy。
bf.minBy(_.length)