kotlin take 和 drop

kotlin take的作用

从头开始获取指定数量的元素

复制代码
val numbers = listOf("one", "two", "three", "four", "five", "six")
// 取集合的4个集合
Log.d("======take", numbers.take(3).toString()) // 打印结果[one, two, three]

takeLast的作用

从尾开始获取指定数量的元素

复制代码
val numbers = listOf("one", "two", "three", "four", "five", "six")
// 取集合的倒数4个集合
Log.d("======takeLast", numbers.takeLast(3).toString())  // 打印结果[four, five, six]

takeWhile的作用

它将不停获取元素直到排除与谓词匹配的首个元素。如果首个集合元素与谓词匹配,则结果为空。

复制代码
val numbers = listOf("one", "two", "three", "four", "five", "six")
        // takeWhile不停获取元素直到排除与谓词匹配的首个元素
        Log.d(
            "======takeWhile",
            numbers.takeWhile { !it.startsWith("f") }.toString()
        ) // 打印结果[one, two, three]

takeLastWhile的作用

与 takeLast() 类似:它从集合末尾获取与谓词匹配的元素区间。区间的首个元素是与谓词不匹配的最后一个元素右边的元素。如果最后一个集合元素与谓词匹配,则结果为空。

复制代码
val numbers = listOf("one", "two", "three", "four", "five", "six")
        Log.d(
            "======takeLastWhile",
            numbers.takeLastWhile { it != "three" }.toString()
        ) // 打印结果[four, five, six]

kotlin dropLast 的作用

从头去除给定数量的元素

复制代码
val numbers = listOf("one", "two", "three", "four", "five", "six")
         //从头去掉第一个元素
        Log.d("======drop", numbers.drop(1).toString()) // 打印结果[two, three, four, five, six]

drop 的作用

从尾去除给定数量的元素

复制代码
val numbers = listOf("one", "two", "three", "four", "five", "six")
        // 从尾去掉第一个元素
        Log.d("======dropLast", numbers.dropLast(1).toString()) // 打印结果[one, two, three, four, five]

dropWhile()的作用

与具有相同谓词的 takeWhile() 相反:它将首个与谓词不匹配的元素返回到末尾。

复制代码
val numbers = listOf("one", "two", "three", "four", "five", "six")
        // 从尾去掉第一个元素
        Log.d("======dropWhile", numbers.dropWhile{it.length == 3}.toString()) // 打印结果[three, four, five, six]

dropLastWhile()的作用

与具有相同谓词的 takeLastWhile() 相反:它返回从开头到最后一个与谓词不匹配的元素。

复制代码
val numbers = listOf("one", "two", "three", "four", "five", "six")

        Log.d("======dropLastWhile", numbers.dropLastWhile{it.contains('i')}.toString()) // 打印结果[one, two, three, four]
相关推荐
夜焱辰8 分钟前
WebMCP 的正确打开方式:只注册 2 个工具,代理 N 个——CreatorWeave 的 On-Demand 实践
前端
黄林晴19 分钟前
Kotlin 2.4.0 正式稳定!Android 升级、Compose、KMP 全变化详解
android·kotlin
吃口巧乐兹35 分钟前
理解 Agent 中的 Slash Command:从概念到自定义命令实践
java·github
用户74595717484035 分钟前
Fabric:Python SSH 远程执行利器
前端
用户2883919274744 分钟前
Elasticsearch DSL:用 Python 对象写查询,不用再手写 JSON
前端
一拳小和尚LXY1 小时前
我开发了一款免费 Chrome 插件 TabScribe:一键复制所有标签页为 Markdown/JSON,完全离线零追踪
前端·chrome·json
dust_and_stars1 小时前
ubuntu24上安装chrome和edge浏览器
前端·chrome·edge
恋猫de小郭1 小时前
Android 官方给 Compose 搞了个不需要 UI 环境的 Composable
android·前端·flutter
老王以为2 小时前
我的多屏编程工作流:从切窗口到空间锚定
前端
夕除2 小时前
shizhan--10
java·开发语言