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]
相关推荐
嘻哈baby21 分钟前
Go 函数中的参数为什么不支持默认值?
java·开发语言·jvm
慧都小项26 分钟前
MyEclipse 2026:当 Agent、MCP 与 Java 26 进入 Eclipse 工作流
java·eclipse·springboot·copilot·myeclipse
雨白28 分钟前
Kotlin 泛型进阶:攻克型变与实化,直击痛点
kotlin
leoZ2311 小时前
第 6 篇:SchemaForm 渲染器核心实现
前端·javascript·vue.js·人工智能·神经网络·机器学习·自然语言处理
CoderYanger1 小时前
前端基础——JavaScript(基础语法)(下篇)
java·开发语言·前端·javascript·程序人生·面试·职场和发展
京师20万禁军教头1 小时前
39面向对象(高级)-设计模式
java·开发语言·设计模式
还是大剑师兰特1 小时前
vue项目浏览器版本判别,低于IE11跳转到新页面
前端·javascript·vue.js
计算机魔术师1 小时前
奥尔特曼致歉 GPT-6 Astra 发布混乱,现已面向所有 Plus / Pro 等用户推出
前端
落樱弥城1 小时前
RHI 设计考量:不同 API 差异分析
服务器·前端·性能优化
白山编程大哥2 小时前
Java 迭代器接口详解:从 Iterator 到 ListIterator 的完整指南
java·开发语言·windows