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]
相关推荐
考虑考虑7 小时前
Mybatis实现批量插入
java·后端·mybatis
咖啡八杯8 小时前
GoF设计模式——中介者模式
java·后端·spring·设计模式
青石路12 小时前
记一次多JDK版本问题的排查,一坑套一坑,差点没爬上来
java
kyriewen12 小时前
我手写了一个 EventEmitter,面试官追问了 6 个问题——第 4 个我没答上来
前端·javascript·面试
IT_陈寒13 小时前
Java的Date类又坑了我一次,改用时间戳真香
前端·人工智能·后端
小林攻城狮13 小时前
使用 Transport 节流解决 Vercel AI SDK 流式渲染卡死问题
前端·react.js
前端缘梦13 小时前
告别 TS 运行时类型漏洞!Zod 完整入门实战教程(前端 / 全栈必备)
前端·react.js·全栈
the_answer14 小时前
Webpack vs Vite 深度对比分析
前端·webpack
转转技术团队14 小时前
验证码识别实战:前端不写页面,改训模型了?
前端
MomentYY14 小时前
Temperature:AI 的“脑洞旋钮”
前端·llm·ai编程