Kotlin中 take、drop方法使用

1、take方法

Kotlin 复制代码
private fun take() {
    val list1 = mutableListOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 0)
    //take函数是根据传入的参数挑出该集合【前n个元素】的子集合
    val list2= list1 .take(2)
    println(list2)
    //[1, 2]
 
    //takeLast函数是根据传入的参数挑出该集合【倒数n个元素】的子集合
    val list3= list1 .takeLast(2)
    println(list3)
    //[9, 0]
}

2、takeWhile

Kotlin 复制代码
private fun takeWhile() {
    val list= mutableListOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 0)
 
    //takeWhile : 从头开始取值,不符合立即停止
    val list1= list.takeWhile {
        it % 2 == 0
    }
    println(list1)
    //[]
 
 
    //takeLastWhile : 从尾开始取值,不符合立即停止
    val list2= list.takeLastWhile {
        it % 2 == 0
    }
    println(list2)
    //[0]
}

3、dropWhile

Kotlin 复制代码
private fun dropWhile() {
    //从头开始找不满足的开始取值,满足的抛弃头部
    val mList = mutableListOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 0)
    val resultList = mList.dropWhile { it <= 1 }
    println(resultList)
}
//[2, 3, 4, 5, 6, 7, 8, 9, 0]

4、dropLastWhile

Kotlin 复制代码
val numbers = listOf("one", "two", "three", "four", "five", "six")
 
println(numbers.dropLastWhile{it.contains('i')}.toString()) 
// 打印结果[one, two, three, four]

5、dropLast

Kotlin 复制代码
private fun dropLast() {
    //去掉最后n个开始取值
    val mList = mutableListOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 0)
    val resultList = mList.dropLast(3)
    println(resultList)
}
//[1, 2, 3, 4, 5, 6, 7]

6、drop

Kotlin 复制代码
private fun drop() {
    //去掉前n个开始取值
    val mList = mutableListOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 0)
    val resultList = mList.drop(3)
    println(resultList)
}
//[4, 5, 6, 7, 8, 9, 0]

drop():从第一项开始去除前n个元素,并返回剩余的元素列表。

dropWhile{}:根据给定函数从第一项开始去掉指定元素,直到不满足条件为止的前面的元素,并返回剩余元素列表。

dropLastWhile{}:根据给定函数从最后一项开始去掉指定元素,直到不满足条件为止的后面的元素,并返回剩余元素的列表。

filter{}:过滤出所有符合给定函数条件的元素。

filterNot{}:过滤所有不符合给定函数条件的元素。filterNotNull():过滤所有元素中不是null的元素。slice():过滤一个list中指定index的元素。

take():返回从第一个开始的n个元素。takeLast():返回从最后一个开始的n个元素。takeWhile{}:返回从第一个开始符合给定函数条件的元素,直到不符合条件为止。

takeLastWhile{}:返回从最后一个开始符合给定函数条件的元素,直到不符合条件为止。

相关推荐
美狐美颜SDK开放平台13 分钟前
视频美颜SDK试用DEMO阶段应该测试什么?直播APP接入实操指南
开发语言·人工智能·深度学习·音视频·美颜sdk·直播美颜sdk·第三方美颜sdk
dtq042415 分钟前
C++小案例 - 日志实战
开发语言·c++
tongyiixiaohuang25 分钟前
WMS已发货状态反写金蝶云星空:单策略实战教程
android
星夜离尘5634 分钟前
MATLAB ADC 码流触顶诊断:命中数、缺口分段与削顶不可辨识性
开发语言·matlab
码匠许师傅1 小时前
【C++三方组件】Qt 概览:桌面 C++ 的事实标准与许可证三轨
开发语言·c++·qt
好的佩奇1 小时前
Dart 之类修饰符
android·flutter·dart
码匠许师傅2 小时前
【C++三方组件】POCO:跨平台系统编程全家桶
开发语言·c++
bkspiderx3 小时前
基于Socket的广播通信及C语言实现详解
c语言·开发语言·socket·广播·socket的广播通信
小王C语言3 小时前
Qt常用控件:输入类控件,单行/多行输入框、下拉框、(日期)微调框、旋钮、滑动条
开发语言·qt
ESDWAN3 小时前
SD-WAN 主备切换为什么仍然会断网?从检测机制到会话恢复分析
开发语言·php