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)

  -- sorted 和 sortBy
  // 排序 - sorted
  // 说明 : 根据 指定的排序器(Ordering),对数组进行排序,并返回一个新数组
  //       默认为 正序排序
  println(s"排序前: ${arr.mkString(",")}")
  println(s"sorted 排序后: ${arr.sorted.mkString(",")}")

  // 排序 - sortBy
  // 说明 :
  //       1. 根据 指定的排序器(Ordering),对转换后的数组进行排序,并返回一个新数组
  //          默认为 正序排序
// 逆序排序 : sortBy(_)(Ordering.Int.reverse)
// 2. 和sorted的区别 : // sortBy可以对数组的元素进行转换 // println(s"sortBy 排序后(绝对值): ${arr.sortBy(x => x.abs).mkString(",")}") }
复制代码

 

posted @   学而不思则罔!  阅读(680)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界
点击右上角即可分享
微信分享提示