kotlin 过滤集合中的特定的元素

kotlin提供了过滤集合很方便过滤集合中特定的元素

1 如果是同一种类型的操作,建议使用filter 或者是partition

例如过滤出字符长度大于3的元素

使用partition

复制代码
val numbers = listOf("one", "two", "three", "four")
        val (match, rest) = numbers.partition { it.length > 3 }
        // 打印结果 [three, four]
        Log.d("=======匹配符合条件match", match.toString())
        // 打印结果 [one, two]
        Log.d("=======匹配不符合条件rest", rest.toString())

使用filter

复制代码
val numbers = listOf("one", "two", "three", "four")
        val langThan3 = numbers.filter { it.length>3 }

如果集合中是不同的类型过滤出相同的类型建议使用filterIsInstance

复制代码
val numbers = listOf(null, 1, "two", 3.0, "four")
        // 过滤出集合中的int
        numbers.filterIsInstance<Int>().forEach {
            // 打印结果是1
            Log.d("=======int元素", it.toString())
        }
        // 过滤出集合中的String
        numbers.filterIsInstance<String>().forEach {
            // 打印结果是two, four
            Log.d("=======String元素", it)
        }
相关推荐
左夕2 分钟前
分不清apply,bind,call?看这篇文章就够了
前端·javascript
Zha0Zhun44 分钟前
一个使用ViewBinding封装的Dialog
前端
兆子龙44 分钟前
从微信小程序 data-id 到 React 列表性能优化:少用闭包,多用 data-*
前端
滕青山1 小时前
文本行过滤/筛选 在线工具核心JS实现
前端·javascript·vue.js
时光不负努力1 小时前
编程常用模式集合
前端·javascript·typescript
恋猫de小郭1 小时前
Apple 的 ANE 被挖掘,AI 硬件公开,宣传的 38 TOPS 居然是"数字游戏"?
前端·人工智能·ios
小岛前端1 小时前
Node.js 宣布重大调整,运行十年的规则要改了!
前端·node.js
OpenTiny社区1 小时前
OpenTiny NEXT-SDK 重磅发布:四步把你的前端应用变成智能应用
前端·javascript·ai编程
梦想CAD控件1 小时前
在线CAD开发包结构与功能说明
前端·javascript·vue.js
张拭心1 小时前
春节后,有些公司明确要求 AI 经验了
android·前端·人工智能