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

相关推荐
阿巴斯甜15 小时前
Activity 之间大量数据传递有哪些方案?
android
阿巴斯甜15 小时前
必看1
android
古城小栈16 小时前
langchain-rust:高性能Rust LLM应用开发实战
开发语言·rust·langchain
我是无敌小恐龙16 小时前
Java基础入门Day10 | Object类、包装类、大数/日期类、冒泡排序与Arrays工具类 超详细总结
java·开发语言·数据结构·算法·贪心算法·排序算法·动态规划
yuanyuan2o217 小时前
从最小项目开始的 CMake 教程
c语言·开发语言·arm开发·c++·makefile·make·cmake
lifewange17 小时前
pytest 找不到文件?直接在 pytest.ini 配置根目录 + 路径(最简单方案)
开发语言·python·pytest
帅次17 小时前
副作用 API:LaunchedEffect、DisposableEffect、SideEffect
android·compose·disposable·sideeffect·launched·ondispose
大鹏说大话17 小时前
MySQL + Redis + Caffeine:Java后端通用三级缓存架构实战
开发语言
yuanpan17 小时前
Python 桌面 GUI 入门开发:从 tkinter 窗口到简易记事本
开发语言·python
User_芊芊君子17 小时前
聊聊自由开发者常用的学习机会全解析
开发语言·人工智能·python