高阶函数的学习(3)

33 阅读1分钟

sorted函数

功能: 对元素进行排序。它会直接使用元素自身的自然顺序进行排序

语法: 新数组 = 原数组.sorted

// sorted排序

  def main(args: Array[String]): Unit = {
  
    // 定义一个数组
    
    val arr = Array(-1,20,3,40)
    val arr1 = arr.sorted
    arr1.foreach(println) // -1 3 20 40

    // 对数值进行排序:从小到大排序
    
    Array(-1,20,-100,3,40).sorted.foreach(println) // -100 -1 3 20 40

    // 对字符排序: 按照字典顺序
    
    Array("zip","bus","apple","banana","card").sorted.foreach(println) //apple banana bus card zip
  }

sortWith函数

如何将Array(-1,0,1,3,2)中的所有元素,按它们到0点的距离排序?

功能: 按自定义规则排序

语法: 新数组 = 原数组.sortWith(排序函数)

排序函数: (元素a,元素b)=>Bool。如果返回 true,则 表示元素a应排在元素b之前。

// sortWith排序:自定义排序规则
  def main(args: Array[String]): Unit = {
    // 对数值进行排序:按照离0点的距离大小进行排序
    // sortWith((x,y) => 布尔值)
    // true:x应该排在y的前面
    // false:x应该要排在y后面
    Array(-1,2,0,4,9).sortWith((x,y)=> Math.abs(x - 0) < Math.abs(y-0)).foreach(println) //0 -1 2 4 9
  }
任务: 从大到小排序
Array(-1,2,0,4,9).sortWith((x,y)=> Math.abs(x) > Math.abs(y)).foreach(println) // 9 4 2 -1 0