47_集合_簡單計算函數(求和、乘積、最大值、最小值、排序)


集合的簡單計算(求和、乘積、最大值、最小值、排序)
* 1. 求和
* 2. 求乘積
* 3. 最大值
* 4. 最小值
* 5. 排序
* 說明
* 1.sorted 按數據元素值(默認),正序排序(默認)
* 2.sortBy 按指定數據元素值比較(自定義),正序排序(默認)
* 3.sortWith 按指定規則比較
* */
/*
* 集合的簡單計算(求和、乘積、最大值、最小值、排序)
*     1. 求和
*     2. 求乘積
*     3. 最大值
*     4. 最小值
*     5. 排序
*        說明
*           1.sorted 按數據元素值(默認),正序排序(默認)
*           2.sortBy 按指定數據元素值比較(自定義),正序排序(默認)
*           3.sortWith 按指定規則比較
* */
object SimpleCaculation extends App {
  //1. 初始化
  var list = List(1, 2, -3, 4, -5, 6, 7)

  //2. 求和 - sum
  println(list.sum)

  //3. 求乘積 - product
  println(list.product)

  //4. 求最大值
  println(list.max)

  //5. 求最小值
  println(list.min)

  //6. 排序
  //默認排序規則為 正序
  var list1 = list.sortBy(x => x) //指定比較的數據
  println(list1)
  var list2 = list.sortBy(x => x.abs) //按絕對值比較大小
  println(list2)

  //指定排序規則
  println(list)

  var index = 1

  //設置比較規則
  def rule(x: Int, y: Int) = {
    printf("第 %d 交換\n", index)
    index += 1
    x > y //倒序
  }

  var list3 = list.sortWith(rule) //函數為true時,交換順序
  println(list3)

  //匿名函數
  var list4 = list.sortWith(_ < _)
  println(list4)

  var list5 = list.sorted
  println(list5)


}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM