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

做网站前台用什么软件天猫的网站导航怎么做的

做网站前台用什么软件,天猫的网站导航怎么做的,seo网站设计费用,网站免费源码续之前的主题中,你已经学习并练习了许多常见的集合操作:排序、过滤和获取元素。 本主题将学习如何基于集合内容获取汇总信息。Kotlin 提供了多种方便的方法,让这项工作变得简单。计数元素 在处理集合时,一个主要任务是统计元素数量…


之前的主题中,你已经学习并练习了许多常见的集合操作:排序、过滤和获取元素。

本主题将学习如何基于集合内容获取汇总信息。Kotlin 提供了多种方便的方法,让这项工作变得简单。


计数元素

在处理集合时,一个主要任务是统计元素数量。我们可以使用 size 属性获取元素个数,但更有趣的是,可以通过传入条件(谓词)来统计符合条件的元素数量。

使用 count() 方法即可实现。该方法返回集合中元素的数量,或者返回满足给定条件的元素数量。例如,统计偶数个数,或者统计长度大于 5 或以 “J” 开头的单词数量。

fun main() {val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)val names = listOf("Pablo", "John", "Jane", "Mary", "Peter")// 元素数量println(numbers.size) // 10println(names.size)   // 5// count() 也可获取元素数量println(numbers.count()) // 10println(names.count())   // 5// 统计满足条件的元素数量println(numbers.count { it % 2 == 0 })  // 5(偶数的个数)println(names.count { it.startsWith("J") })  // 2(以 J 开头的名字数)
}

不同的元素(去重)

有时你不知道集合中是否存在重复元素。这时知道唯一元素很有帮助。

  • distinct() 返回一个只包含集合中不重复元素的新列表。

  • distinctBy() 返回一个只包含根据给定选择器函数去重后的元素集合。

fun main() {val numberWithRepeated = listOf(1, 2, 3, 4, 5, 4, 4, 3, 1)val namesWithRepeated = listOf("Pablo", "John", "Jane", "John", "Jane")// 去重元素println(numberWithRepeated.distinct()) // [1, 2, 3, 4, 5]println(namesWithRepeated.distinct())  // [Pablo, John, Jane]// 根据条件去重println(numberWithRepeated.distinctBy { it % 2 }) // [1, 2] (按奇偶分组)println(namesWithRepeated.distinctBy { it.first() }) // [Pablo, John](按首字母分组)
}

元素求和

当集合中的元素可以相加时,你可能想知道它们的总和。

sum() 返回所有集合元素的和。sumOf() 可以接受一个选择器函数,对每个元素进行映射后求和。

注意:这些方法只适用于数字类型集合,否则会抛出异常。

fun main() {val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)val names = listOf("Pablo", "John", "Jane", "Mary", "Peter")println(numbers.sum()) // 55,数字和println(numbers.sumOf { it * 2 }) // 110,所有数字乘2后的和println(names.sumOf { it.length }) // 22,名字长度的总和println(numbers.sumOf { if (it % 2 == 0) it else 0 }) // 30,偶数的和println(names.sumOf { if (it.startsWith("J")) it.length else 0 }) // 8,以 J 开头名字长度总和
}

平均值

有时你需要计算集合元素的平均值。

  • average() 返回集合中数字元素的平均值。

  • 该方法只适用于数字类型集合,否则会抛出异常。

fun main() {val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)val names = listOf("Pablo", "John", "Jane", "Mary", "Peter")println(numbers.average()) // 5.5,数字平均值println(numbers.filter { it % 2 == 0 }.average()) // 6.0,偶数平均值println(names.map { it.length }.average()) // 4.4,名字长度平均值println(names.filter { it.startsWith("J") }.map { it.length }.average()) // 4.0,以 J 开头名字的长度平均值
}

最大值和最小值

通常你想找到集合中的最大或最小元素。Kotlin 提供多种方法:

  • minOrNull() 返回最小元素,空集合时返回 null。

  • maxOrNull() 返回最大元素,空集合时返回 null。

  • minByOrNull(selector) 返回产生最小选择器值的元素,空集合时返回 null。

  • maxByOrNull(selector) 返回产生最大选择器值的元素,空集合时返回 null。

  • minOfOrNull(selector) 返回最小的选择器返回值,空集合时返回 null。

  • maxOfOrNull(selector) 返回最大的选择器返回值,空集合时返回 null。

  • minWithOrNull(comparator) 根据比较器返回最小元素。

  • maxWithOrNull(comparator) 根据比较器返回最大元素。

  • minOfWithOrNull(comparator, selector) 根据比较器返回最小的选择器值。

  • maxOfWithOrNull(comparator, selector) 根据比较器返回最大的选择器值。

fun main() {val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)val words = listOf("anne", "michael", "caroline", "dimitry", "emilio")println(numbers.maxOrNull()) // 10println(numbers.minOrNull()) // 1println(words.maxByOrNull { it.length }) // caroline(最长的单词)println(words.minByOrNull { it.length }) // anne(最短的单词)println(words.maxOfOrNull { it.length }) // 8(最长单词长度)println(words.minOfOrNull { it.length }) // 4(最短单词长度)println(words.count { it.length > 5 }) // 4,长度大于5的单词数println(words.maxByOrNull { it.length > 5 }) // michael(第一个满足条件的最大值元素)println(words.minByOrNull { it.length > 5 }) // anne(第一个满足条件的最小值元素)println(words.maxWithOrNull(compareBy { it.length })) // carolineprintln(words.minWithOrNull(compareBy { it.length })) // anneprintln(words.maxOfWithOrNull(naturalOrder()) { it.length }) // 8println(words.minOfWithOrNull(naturalOrder()) { it.length }) // 4
}

空集合的处理

OrNull 结尾的方法,空集合时返回 null,而不带 OrNull 的版本在空集合时会抛出 NoSuchElementException

fun main() {val emptyWordsList = emptyList<String>()val emptyNumbersList = emptyList<Int>()println(emptyNumbersList.maxOrNull()) // nullprintln(emptyNumbersList.minOrNull()) // nullprintln(emptyWordsList.maxByOrNull { it.length }) // nullprintln(emptyWordsList.minByOrNull { it.length }) // nullprintln(emptyWordsList.maxOfOrNull { it.length }) // nullprintln(emptyWordsList.minOfOrNull { it.length }) // nullprintln(emptyNumbersList.max()) // 抛出 NoSuchElementExceptionprintln(emptyNumbersList.min()) // 抛出 NoSuchElementExceptionprintln(emptyWordsList.maxOf { it.length }) // 抛出 NoSuchElementExceptionprintln(emptyWordsList.minOf { it.length }) // 抛出 NoSuchElementExceptionprintln(emptyWordsList.maxBy { it.length }) // 抛出 NoSuchElementExceptionprintln(emptyWordsList.minBy { it.length }) // 抛出 NoSuchElementException
}

maxOf/minOf 与 maxBy/minBy 的区别

  • maxOfOrNull / minOfOrNull 返回选择器函数生成的最大/最小值(比如最大/最小的长度),或者空集合时返回 null

  • maxByOrNull / minByOrNull 返回产生最大/最小选择器值的第一个元素,或者空集合时返回 null

例如:

  • maxOfOrNull { it.length } 返回最大长度(8)。

  • maxByOrNull { it.length } 返回第一个最长的单词(“caroline”)。


总结

本主题介绍了如何使用 Kotlin 集合的多种方法快速获取汇总信息,例如:

  • 元素数量统计(count

  • 去重(distinct

  • 求和(sum / sumOf

  • 平均值(average

  • 最大最小值(maxOrNull / minOrNull / maxByOrNull / minByOrNull 等)


结合条件谓词和选择器函数,你可以高效地完成各种数据统计与查询操作。


文章转载自:

http://D2nShe2C.crdtx.cn
http://OYYAopim.crdtx.cn
http://NfIv0aMj.crdtx.cn
http://F9hCzOzY.crdtx.cn
http://4RTwVUsx.crdtx.cn
http://jG4EFhb8.crdtx.cn
http://umubYj4u.crdtx.cn
http://GyCB730W.crdtx.cn
http://YmKdIc9A.crdtx.cn
http://dAtZiZx1.crdtx.cn
http://KQmOtxSo.crdtx.cn
http://NVI2IKB8.crdtx.cn
http://TYLay3Bp.crdtx.cn
http://sL0HK8QA.crdtx.cn
http://d5esSPlU.crdtx.cn
http://iYCqFbtU.crdtx.cn
http://SqEngC9c.crdtx.cn
http://Oj0rfGxC.crdtx.cn
http://39v3avTg.crdtx.cn
http://vb54v2pL.crdtx.cn
http://qGyzagTd.crdtx.cn
http://npWmf55A.crdtx.cn
http://L73gMqeP.crdtx.cn
http://nPtwfvnu.crdtx.cn
http://RuuCT187.crdtx.cn
http://XTuDNQBZ.crdtx.cn
http://SUJz9JWv.crdtx.cn
http://X5cMLFGA.crdtx.cn
http://XRu6VllO.crdtx.cn
http://oqBPLgBM.crdtx.cn
http://www.dtcms.com/wzjs/612686.html

相关文章:

  • 提高审美的网站推荐网站建设公司找博行
  • 手机如何搭建网站揭阳网站免费建站
  • 庆阳网站哪里做企业社交网站定制
  • 网站域名怎么修改找我家是做的视频网站
  • 成品网站货源成都网页设计培训学校哪家好
  • 自己做网站要钱吗唐山哪里建档生孩子好
  • 网站列表页怎么做内链东莞网络营销十年乐云seo
  • 做电影下载网站成本谷歌全球营销
  • 数据库做后台网站怎么做企业销售网站
  • 上海排名十大装潢公司合肥网络优化推广公司
  • 有哪些做统计销量的网站网站建设与管理教案怎么写
  • 促销型网站网站制作完成之后进入什么阶段
  • 无锡网页建站公司做一款网站
  • 中国十大猎头公司郑州网站关键词优化公司哪家好
  • 网站建设公司税率本地信息发布平台
  • 新站如何让百度快速收录天津网站建设推广
  • 沈阳网站开发久熊猫采集 wordpress 发布
  • vs做网站头部的代码济南兼职做网站
  • 网站建设渠道个人网页制作的流程和步骤
  • 域名不变 网站改版网站该怎么找到
  • 胖哥食品网站建设规范意见建设商城网站视频教学
  • 手机版网站的优势深圳推广优化公司
  • 淘客网站是怎么做的网站建设的主要工作内容
  • 河南省教育类网站前置审批wordpress 主页编辑
  • 湖北建设网站信息查询中心wordpress全站静态cdn
  • php网站开发考试网站开发tornado
  • 重庆网站建设快忻科技微信上怎么做广告推广
  • wordpress新闻站自动采集器电商平台运营方案
  • 定制网站建设公司推荐代运营合作协议
  • PHP网站新闻发布怎么做网站建设需要客户提供什么内容