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

时间:2019-02-03 13:11:32

标签: arrays scala max min arraybuffer

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

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

对于Max,输出为“ wheels”,这是正确的,因为与其他元素相比,wheel的元素数量很大 但是当我尝试bf.min时。我得到的输出为“总线”。如果min为元素提供了最少的元素,则应为“ on”?我对吗?我在这里想念什么?有人可以帮我了解我在做什么错吗?

2 个答案:

答案 0 :(得分:3)

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

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

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

13ob的整数值之差。同样,返回值是正数,这意味着左操作数大于右操作数。

on小于wheels,依此类推:

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

这里的返回值为负,表示左操作数小于右操作数。

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

答案 1 :(得分:3)

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

如果要分别获取最短或最长的字符串,则要使用minBy,maxBy。

bf.minBy(_.length)

Array#maxBy