kotlin集合包属性函数(待分组)(4)

val list = listOf(1, 2, 3, 4, 5, 6)assertEquals(listOf(1, 3, 5), list.filterNot { it % 2 == 0 }) [原创文章:www.11jj.com]


[转载出处:www.11jj.com]

filterNotNull过滤非null元素

val list = listOf(1, 2, 3, 4, 5, 6)assertEquals(listOf(1, 2, 3, 4), listWithNull.filterNotNull())

filterTo过滤符合函数的元素再赋值给目标

val list = listOf(1, 2, 3, 4, 5, 6)val dest = mutableListOf<Int>()assertEquals(listOf(4, 5, 6, 7), list.filterTo(dest, { it > 3 }))


slice过滤列表中指定索引的元素

val list = listOf(1, 2, 3, 4, 5, 6)assertEquals(listOf(2, 4, 5), list.slice(listOf(1, 3, 4)))

take返回从前开始n个元素

val list = listOf(1, 2, 3, 4, 5, 6)assertEquals(listOf(1, 2), list.take(2))


takeLast返回从后开始n个元素

val list = listOf(1, 2, 3, 4, 5, 6)assertEquals(listOf(5, 6), list.takeLast(2))

takeWhile返回从前开始连续符合函数的元素

val list = listOf(1, 2, 3, 4, 5, 6)assertEquals(listOf(1, 2), list.takeWhile { it < 3 })


takeLastWhile返回从后开始连续符合函数的元素

val list = listOf(1, 2, 3, 4, 5, 6)assertEquals(listOf<Int>(), list.takeLastWhile { it < 3 })

========
分组操作符

groupBy返回根据函数分组后的map,结果可根据第二函数转换

val list = listOf(1, 2, 3, 4, 5, 6)assertEquals(mapOf("odd" to listOf(1, 3, 5), "even" to listOf(2,4, 6)), list.groupBy { if (it % 2 == 0) "even" else "odd" })

val words = listOf("a", "abc", "ab", "def", "abcd")println(words.groupBy({ it.length }))println(words.groupBy({ it.length }, { it.contains("b") }))val programmer = listOf("K&R" to "C", "Bjar" to "C++", "Linus" to "C", "James" to "Java")println(programmer.groupBy({ it.second }))println(programmer.groupBy({ it.second }, { it.first }))println(programmer.groupBy({ it.second }, { it.second }))

  • {1=[a], 3=[abc, def], 2=[ab], 4=[abcd]}
     {1=[false], 3=[true, false], 2=[true], 4=[true]}
     {C=[(K&R, C), (Linus, C)], C++=[(Bjar, C++)], Java=[(James, Java)]}
     {C=[K&R, Linus], C++=[Bjar], Java=[James]}
     {C=[C, C], C++=[C++], Java=[Java]}



    groupingBy根据函数分组,结合eachCount统计

    自媒体 微信号:11jj 扫描二维码关注公众号
    爱八卦,爱爆料。

    小编推荐

    1. 1

      @全体师生 防灾减灾宣传周主题海报来了

      本年5月12日是第16个全国防灾减灾日主题是“人人讲平安、个个会应急——出力提拔下层防灾避险能力”5月11日至17日为防灾减灾宣传周国度防灾减灾

    2. 2

      名单出炉!莆田首支霹雳舞市级集训队名单确定

      近日由莆田市体育局荔城区文化体育和旅行局作为指导单元单子莆田市体育跳舞活动协会主办莆田市体育跳舞活动协会街舞专业委员会协办的“奔驰

    3. 3

      你的【福利】即将到账

      叮!我预备了【京东卡】要给你!你的【福利】即将到账!叮!你有一张【京东卡】待查收天色逐渐转暖,属于炎天的康乐就要回来了!大排档里黏

    4. 4

      优秀护士工作总结(优秀护士工作总结自参加工作以来)

      大家好,小丽今天来为大家解答优秀护士工作总结以下问题,优秀护士工作总结自参加工作以来很多人还不知道,现在让我们一起来看看吧!1、轻基

    5. 5

      《健康中国观察》封面文章,介绍苏州经验!

      《健康中国视察》2024年4月刊登载了题为《共建共享 健康姑苏——中国式现代化配景下的健康城市索求与实践》的封面文章聚焦姑苏健康城市扶植经

    6. 6

      送红包1314是什么意思(红包1314是多少钱)

      大家好,小乐今天来为大家解答送红包1314是什么意思以下问题,红包1314是多少钱很多人还不知道,现在让我们一起来看看吧!1、1314,即一生一世谐

    7. 7

      她打翻了上帝的水彩盒!太美了!

      Anna Armona 乌克兰艺术家她的水彩作品唯美、抽象且具有诗意那种布满着梦幻的色彩,灿烂斑斓,使人感受赞叹、震撼与晕眩!春:夏秋冬图文起原收

    8. 8

      辞退无固定期限合同员工的赔偿(辞退无固定期限合同员工的赔偿最高)

      大家好,小娟今天来为大家解答辞退无固定期限合同员工的赔偿以下问题,辞退无固定期限合同员工的赔偿最高很多人还不知道,现在让我们一起来

    Copyright 2024.依依自媒体,让大家了解更多图文资讯!