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{}:返回从最后一个开始符合给定函数条件的元素,直到不符合条件为止。

相关推荐
wu_android3 分钟前
Android 线性布局中常见的冲突属性总结
android
恋猫de小郭27 分钟前
为什么跨平台框架可以适配鸿蒙,它们的技术原理是什么?
android·前端·flutter
钮钴禄·爱因斯晨1 小时前
Java 面向对象进阶之多态:从概念到实践的深度解析
java·开发语言·数据结构
鸽子炖汤1 小时前
Java中==和equals的区别
java·开发语言·jvm
有个傻瓜1 小时前
PHP语言核心技术全景解析
开发语言·kubernetes·php
菥菥爱嘻嘻1 小时前
JS手写代码篇---手写ajax
开发语言·javascript·ajax
江梦寻1 小时前
MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
开发语言·后端·python·macos·架构·策略模式
霖檬ing2 小时前
Python——MySQL远程控制
开发语言·python·mysql
张风捷特烈2 小时前
每日一题 Flutter#5,6 | 两道 Widget 选择题
android·flutter
移动开发者1号2 小时前
App主界面点击与跳转启动方式区别
android·kotlin