scala的sortWith,sortBy区别和用法
时间: 2024-04-07 10:33:01 浏览: 53
scalajs-react-template-webpack:scalajs-react 和 scalacss 和 webpack
Scala中的sortWith和sortBy是用于对集合进行排序的方法。
sortWith方法接受一个比较函数作为参数,该函数定义了元素之间的比较规则。比较函数需要返回一个布尔值,表示两个元素的顺序关系。如果返回值为true,表示第一个元素应该在第二个元素之前;如果返回值为false,表示第一个元素应该在第二个元素之后。
例如,我们可以使用sortWith方法对一个整数列表进行降序排序:
```scala
val numbers = List(5, 2, 8, 1, 3)
val sortedNumbers = numbers.sortWith(_ > _)
// sortedNumbers: List[Int] = List(8, 5, 3, 2, 1)
```
sortBy方法则接受一个函数作为参数,该函数定义了用于排序的关键字。函数的返回值类型必须是可排序的(Ordered),比如整数、字符串等。sortBy方法会根据关键字对集合进行排序。
例如,我们可以使用sortBy方法对一个字符串列表按照字符串的长度进行排序:
```scala
val strings = List("apple", "banana", "orange", "pear")
val sortedStrings = strings.sortBy(_.length)
// sortedStrings: List[String] = List(pear, apple, banana, orange)
```
总结起来,sortWith方法通过比较函数来确定顺序关系,而sortBy方法通过关键字函数来确定排序的依据。
阅读全文