当前位置: 首页 > wzjs >正文

国外设计网站欣赏物联网小项目

国外设计网站欣赏,物联网小项目,教育网站怎么做弹窗的,企业申报系统在前面的主题中,我们学习了如何对集合进行排序或基于谓词过滤集合元素。 现在是时候学习如何根据集合的内容获取值了,例如:最大值、平均值、具有最大某个属性值的对象等等。Kotlin 提供了非常方便的方法来完成这些任务,这些方法被…

在前面的主题中,我们学习了如何对集合进行排序或基于谓词过滤集合元素。

现在是时候学习如何根据集合的内容获取值了,例如:最大值、平均值、具有最大某个属性值的对象等等。Kotlin 提供了非常方便的方法来完成这些任务,这些方法被称为“聚合方法(aggregation methods)”。


基本聚合函数

当我们处理集合时,可以使用一系列方法根据集合的内容获取某些值或额外信息,这些方法包括:

  • minOrNull():返回集合中最小的元素,若集合为空则返回 null

  • maxOrNull():返回集合中最大的元素,若集合为空则返回 null

  • average():返回数值集合的平均值。

  • sum():返回数值集合所有元素的总和。

  • count():返回集合中的元素数量。

fun main() {val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)// 最小值和最大值println(numbers.minOrNull()) // 1println(numbers.maxOrNull()) // 10// 平均值println(numbers.average()) // 5.5// 总和println(numbers.sum()) // 55// 元素数量println(numbers.count()) // 10
}
解释代码:

这个程序使用了基础的聚合方法来处理一个整数列表。你可以轻松获得最大值、最小值、平均数、总和和元素数量。


带选择器函数的聚合

有时候我们需要指定使用哪个属性进行聚合操作。Kotlin 提供了**带选择器函数(selector function)**的专用方法:

  • minByOrNull { }:返回具有最小属性值的元素(集合为空时返回 null)。

  • maxByOrNull { }:返回具有最大属性值的元素(集合为空时返回 null)。

  • minOfOrNull { }:返回所有选择器函数结果中的最小值(集合为空时返回 null)。

  • maxOfOrNull { }:返回所有选择器函数结果中的最大值(集合为空时返回 null)。

  • sumOf { }:返回将选择器函数应用于每个元素后的结果之和。

fun main() {val words = listOf("anne", "michael", "caroline", "dimitry", "emilio")// 元素个数println(words.count()) // 5// 根据长度选择最大/最小的字符串println(words.maxByOrNull { it.length }) // carolineprintln(words.minByOrNull { it.length }) // anne// 最大/最小长度值println(words.maxOfOrNull { it.length }) // 8println(words.minOfOrNull { it.length }) // 4// 所有单词长度之和println(words.sumOf { it.length }) // 32// 使用谓词进行计数和查找println(words.count { it.length > 5 }) // 4println(words.maxByOrNull { it.length > 5 }) // michaelprintln(words.minByOrNull { it.length > 5 }) // anne// 空集合val emptyWordsList = emptyList<String>()println(emptyWordsList.count()) // 0println(emptyWordsList.maxByOrNull { it.length }) // nullprintln(emptyWordsList.minByOrNull { it.length }) // nullprintln(emptyWordsList.maxOfOrNull { it.length }) // nullprintln(emptyWordsList.minOfOrNull { it.length }) // nullprintln(emptyWordsList.maxOf { it.length })  // 抛出 NoSuchElementExceptionprintln(emptyWordsList.minOf { it.length })  // 抛出 NoSuchElementExceptionprintln(emptyWordsList.maxBy { it.length })  // 抛出 NoSuchElementExceptionprintln(emptyWordsList.minBy { it.length })  // 抛出 NoSuchElementException
}
解释代码:
  • maxByOrNullminByOrNull 会返回属性值最大的元素,而不是值本身。

  • maxOfOrNullminOfOrNull 返回的是选择器结果的最大/最小值。

  • 使用谓词如 it.length > 5 会将 true/false 当作比较依据,true > false,所以 maxByOrNull 返回第一个满足条件的元素。


使用比较器聚合(Comparator)

你也可以通过传递自定义比较器来执行类似操作:

  • minWithOrNull(comparator)

  • maxWithOrNull(comparator)

  • minOfWithOrNull(comparator) { }

  • maxOfWithOrNull(comparator) { }

这些方法在集合为空时返回 null,而它们的非 OrNull 版本(如 maxWith())在集合为空时会抛出异常。

fun main() {val words = listOf("anne", "michael", "caroline", "dimitry", "emilio")// 自定义比较器:长度排序println(words.maxWithOrNull(compareBy { it.length })) // carolineprintln(words.minWithOrNull(compareBy { it.length })) // anne// 使用比较器获取最大最小的长度值println(words.maxOfWithOrNull(naturalOrder()) { it.length }) // 8println(words.minOfWithOrNull(naturalOrder()) { it.length }) // 4// 使用谓词计数println(words.count { it.first() == 'a' }) // 1
}

反转排序结果

你可以将比较器与 reversed() 组合,获取相反顺序的结果:

fun main() {val words = listOf("peter", "anne", "michael", "caroline")// 按长度排序后反转println(words.sortedWith(compareBy { it.length }).reversed()) // [caroline, michael, peter, anne]// 按中间字母排序后反转println(words.sortedWith(compareBy { it[it.length / 2] }).reversed()) // [peter, anne, caroline, michael]
}
解释代码:
  • compareBy { it.length } 是一个比较器,会按单词长度排序。

  • reversed() 会将排序结果倒序。

  • it[it.length / 2] 是获取字符串的中间字符,根据它来排序也可以。


总结

在本节中,我们学习了各种用于获取集合中值的聚合方法,包括:

  • 获取最大/最小值。

  • 获取平均值、总和。

  • 查找具有最大某个属性值的元素。

  • 使用选择器或比较器自定义排序和聚合方式。


文章转载自:

http://8hxk07Bg.sjksk.cn
http://Ocu9Wf6Z.sjksk.cn
http://87HfeZjB.sjksk.cn
http://6d1P5qpc.sjksk.cn
http://4MTouMpz.sjksk.cn
http://guP7HcsR.sjksk.cn
http://XBi7mfhu.sjksk.cn
http://IVlKkIMb.sjksk.cn
http://lvfJ4SgA.sjksk.cn
http://Wv7jy6lP.sjksk.cn
http://H2l6QINz.sjksk.cn
http://c2sgmVop.sjksk.cn
http://D47O3mON.sjksk.cn
http://wgIPs4mw.sjksk.cn
http://sLCFKFE0.sjksk.cn
http://9mBSxmCI.sjksk.cn
http://G2exeLgq.sjksk.cn
http://PIBLXsFF.sjksk.cn
http://GyXs63Jy.sjksk.cn
http://9PrrLNwY.sjksk.cn
http://SLHHvdzW.sjksk.cn
http://roAyZSO3.sjksk.cn
http://sfLzrEXf.sjksk.cn
http://TT2tgy5A.sjksk.cn
http://xfSWZQnn.sjksk.cn
http://buN6qqD4.sjksk.cn
http://PTLmbKwD.sjksk.cn
http://cwVwDKsG.sjksk.cn
http://fOyPEJ0Q.sjksk.cn
http://uLAMPLFE.sjksk.cn
http://www.dtcms.com/wzjs/730109.html

相关文章:

  • 昌江县住房和城乡建设局网站php mysql网站开发项目
  • 网站部分频道完全不收录了怎么做织梦网站教程
  • 网站建设免费代理附近学电脑在哪里报名
  • 鞍山网站建设找金航青岛建站费用
  • 建网站服务器系统百度免费网站建设
  • 昆明网站建站推广搜索引擎网站建设代码
  • 网站标签图标代码wordpress is
  • 个人网站可以做产品众筹吗店铺推广软文范例
  • 湖南移动官网网站建设东莞公共资源交易中心官网
  • 网站开发制作公自己的网站怎么和百度做友链
  • 简约淘宝网站模板免费下载手机网站架构
  • 静安网站建设关键词优化seo怎么自己做投票网站
  • 石家庄seo网站管理电商网站订货
  • 企业网站优化服务主要围绕哪些要素风格 特别的网站
  • 电子商务网站的建设方法上海公司法人落户条件
  • 网站设计建设专业服务德州宁津建设局网站
  • 烟台提供网站设计制作网页传奇游戏黑屏怎么解决
  • 自己怎么做卖服装的网站外贸网站谷歌seo
  • 网站设计红色表示什么赣州信息港房产网
  • 大型网站制作流程山东网站排名优化公司
  • 红色主题网站模板开个网站需要什么
  • 如何做可以微信转发的网站网络科技有限公司怎么挣钱
  • 设计教程网站推荐威海市建设局网站
  • 网站首页的文字下拉怎么做建设公司网站需要什么
  • 成都o2o网站建设空中花园做网站的公司
  • 太原新建火车站短网址链接生成
  • 做衣服视频有些什么网站旅游网站建设的方向
  • 安平丝网网站建设wordpress怎么修改图片
  • 北京建网站服务wordpress展现备案号
  • 好好建站江宁区住房建设局网站