Kotlin中take、drop方法使用

2023-11-02

1、 take方法:

private fun take() {
    val mList = mutableListOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 0)
    //take函数是根据传入的参数挑出该集合【前n个元素】的子集合
    val mNewList1 = mList.take(2)
    println(mNewList1)
    //[1, 2]

    //takeLast函数是根据传入的参数挑出该集合【倒数n个元素】的子集合
    val mNewList2 = mList.takeLast(2)
    println(mNewList2)
    //[9, 0]
}

2、 takeWhile

private fun takeWhile() {
    val mList = mutableListOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 0)

    //takeWhile : 从头开始取值,不符合立即停止
    val mNewList3 = mList.takeWhile {
        it % 2 == 0
    }
    println(mNewList3)
    //[]


    //takeLastWhile : 从尾开始取值,不符合立即停止
    val mNewList4 = mList.takeLastWhile {
        it % 2 == 0
    }
    println(mNewList4)
    //[0]
}

3、 takeIf

private fun takeIf() {
    val mList = mutableListOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 0)

    //如果符合返回它
    val mNewList5 = mList.takeIf {
        it.size == 10 //true
    }
    println(mNewList5)
    //[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]


    val mNewList51 = mList.takeIf {
        it.size == 5  //false
    }
    println(mNewList51)
    //null
}

4、 takeUnless

private fun takeUnless() {
    val mList = mutableListOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 0)

    //如果不符合返回它
    val mNewList6 = mList.takeUnless {
        it.size == 10  //true
    }
    println(mNewList6)
    //null


    val mNewList61 = mList.takeUnless {
        it.size == 5  //false
    }
    println(mNewList61)
    //[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]

}

5、 drop

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]

6、 dropLast

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]

7、dropLastWhile

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]

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kotlin中take、drop方法使用 的相关文章

  • android edittext中的字符映射

    我想让我的编辑文本就像我写字符 g 时一样 它是相关的映射自定义字符应该写成印地语中的 我认为应该有字符映射 但没有知识任何人都可以帮助我 怎么做 其他应用程序https play google com store apps details
  • Android短音的正确播放方法?

    我正在创建一个应用程序 屏幕上将有多个图像 这些图像将是按钮 点击时会播放短促的声音 我对此进行了研究 只能找到我当前用来播放声音的方法 这似乎根本没有响应 我希望声音能够快速播放并且能够响应多次快速点击 我不确定这在 Android 中是
  • 如何使用 KClass 反射在 Kotlin 中区分类和接口

    我正在使用 Kotlins KClass 按名称查找类 如下所示 val i KClass lt gt Class forName SampleClass kotlin 但是 我想省略接口 到目前为止 我通过构造函数区分接口和类 val i
  • 如何在android中显示保存在sdcard文件夹中的图像[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 当我正在显
  • AdapterContextMenuInfo 始终为 null

    我尝试通过 android 开发文档中的书来做到这一点 this didn t create a menu i don t know why registerForContextMenu getListView setListAdapter
  • 如何正确释放Android MediaPlayer

    我正在尝试向我的 Android 应用程序添加一个按钮 当点击该按钮时它会播放 MP3 我已经让它工作了 但没有办法释放 mediaPlayer 对象 因此即使在我离开活动后它仍然会继续播放 如果我在react 方法之外初始化MediaPl
  • Android Q:file.mkdirs() 返回 false

    我们有一个应用程序 使用外部存储来存储一些临时文件 图像 二进制数据 该代码已经运行了几年 直到最近才发生重大变化 在 Android Q 上它不起作用 File f new File Environment getExternalStor
  • 如何在 Linux 内核中定义并触发我自己的新软中断?

    我想在 Linux 内核中创建自己的软中断 这是正确的方法吗 In the init我想触发该模块的softirq我将添加一个调用 394 void open softirq int nr void action struct softir
  • 将现有 VARCHAR 列与 Room 结合使用

    我正在尝试将现有的数据库与 Android Room 一起使用 但是 我的一个表有一个 VARCHAR 列 Room 似乎只支持 TEXT 不支持 VARCHAR 而且 sqlite 不允许修改列类型 那么 有没有办法使用Room中现有的带
  • Android应用程序组件销毁和重新创建的详细信息

    有人可以向我提供一些具体的 值得信赖的 最好是简洁的 信息 内容如下 系统销毁和 如果适用 重新创建组件的顺序 片段 活动 活动的线程 异步任务 计时器 静态数据 类何时卸载 其他类中的线程 异步任务 定时器 主机 TabActivity
  • Bitmap.getPixels() 中的 IllegalArgumentException

    我想将数据从位图复制到int using getPixels 这是我当前的代码 int pixels new int myBitmap getHeight myBitmap getWidth myBitmap getPixels pixel
  • Dialog.setTitle 不显示标题

    我正在尝试向我的对话框添加自定义标题 但是每当我运行我的应用程序时 它都不会显示标题 我创建对话框的代码是 final Dialog passwordDialog new Dialog this passwordDialog setCont
  • 以编程方式将文本颜色设置为主要 Android 文本视图

    如何设置我的文本颜色TextView to android textColorPrimary以编程方式 我已经尝试了下面的代码 但它将 textColorPrimary 和 textColorPrimary Inverse 的文本颜色始终设
  • ExoPlayer2 - 如何使 HTTP 301 重定向工作?

    我开始使用 ExoPlayer 来传输一些音频 一切都很顺利 直到我遇到一个带有 301 永久移动 重定向的 URL ExoPlayer2 默认情况下不处理该问题 我已经看过这个线程 https github com google ExoP
  • Android:后台Activity可以执行代码吗?

    后台的活动是否被视为 正在运行 并且可以执行代码 还是处于挂起状态 他们暂停了 活动生命周期 http developer android com reference android app Activity html ActivityLi
  • 使用片段时应用程序崩溃

    我正在处理碎片和 我的代码中有一个我找不到的问题 logcat 指向我的一个片段中的这段代码 Override public View onCreateView LayoutInflater inflater ViewGroup conta
  • 在 Samsung Galaxy S5 Android 5.0 上使用 MediaPlayer 加载音频流需要超过 10 秒

    由于更新至 Android 5 0 MediaPlayer 在 Samsung Galaxy S5 上无法正常工作 启动音频流后加载时间超过 10 秒 示例代码 MediaPlayer mPlayer new MediaPlayer Str
  • 上网本上可以进行Android开发吗? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我想使用我的上网本进行 Android 开发 但是当我尝试使用 Eclipse 运行 SDK 时 没有加载任何内容 上网本对于 Android 开发来
  • 没有支持 FEATURE_CAMERA_EXTERNAL 的 Android 设备

    根据this doc https source android com devices camera external usb cameras一些 Android 设备允许使用 Camera2 API 访问外部 USB 摄像头 我检查了大约
  • Dagger 2 中“HasFragmentInjector”的实际用法是什么

    我之前已经实现了 dagger2 v2 2 但现在他们也添加了 dagger android 部分 所以我正在用它创建示例项目 我知道旧的方法论 Provide and Modules and 成分等注释 但从 Dagger 2 8 开始

随机推荐

  • Redhat Enterprise Linux 9安装配置图解教程

    2022 年 5 月 18 日 IBM 收购的红帽公司宣布推出红帽企业 Linux 9 RHEL 9 这是世界领先的企业 Linux 平台的最新版本 RHEL 9 为支持混合云创新提供了更灵活 更稳定的基础 并为跨物理 虚拟 私有和公共云和
  • workman 日志_workerman

    下载 手册参考 http doc3 workerman net 一 WorkerMan代码规范 1 类采用首字母大写的驼峰式命名 类文件名称必须与文件内部类名相同 以便自动加载 2 使用命名空间 命名空间名字与目录路径对应 并以开发者的项目
  • Java架构直通车——Redis的PF实现原理:HyperLogLog

    文章目录 引入 什么是基数统计 基数统计的常用方法 HyperLogLog原理 再近一步 分桶平均 更近一步 真实的HyperLogLog 引入 之前的文章Java架构直通车 点赞功能用Mysql还是Redis 一文中 我们介绍了分别从my
  • Java处理Excel

    1 引言 Excel是我们平时工作中比较常用的用于存储二维表数据的 Java中有两种常用的方法操作Excel jxl和poi 其中 在小数据量时jxl快于poi 在大数据量时poi要快于jxl 但差距都不明显 本文使用poi进行处理Exce
  • thinkPHP6.0入门笔记(四)——删除和修改用户信息

    thinkPHP6 0实现删除和修改用户信息 1 删除用户信息 2 优化bootstrap资源引入方式 3 浏览器的cookie与session机制 4 token令牌原理 5 利用token防止表单重复提交 6 同步表单数据库修改 参考文
  • 盘点国内10家互联网AI大模型

    ChatGPT在国内掀起热潮后 中国的生成式AI技术也迎来了蓬勃发展 中国国产AI模型的前景非常广阔 尤其是在中国国家战略的推动下 人工智能领域正在迅速发展 中国的公司和研究机构都在积极进行研发 并取得了一些重大进展 下面我们来看一下已经开
  • spark-2.2.0安装和部署——Spark集群学习日记

    前言 在安装后hadoop之后 接下来需要安装的就是Spark scala 2 11 7下载与安装 具体步骤参见上一篇博文 Spark下载 为了方便 我直接是进入到了 usr local文件夹下面进行下载spark 2 2 0 wget h
  • 【ffmpeg + VS2010】编译包含libavutil\common.h后出现找不到inttypes.h的问题

    包含libavutil common h 由于里面 include
  • 正则表达式(Regular Expressions)

    1 至少8个字符 8 2 URL http w w w URL 2 a zA z w w w w S 3 E Mail w w w w w w E Mail 2 w w w E Mail 3 w w w w 4 非负整数 正整数 0 d 5
  • 【设计】LDO

    参考 设计 低压差稳压器 LDO 的设计分析 对于误差放大器 当没有输出电容 为寄生电容的时候 输出的误差放大器为高频极点 而LDO的输出极点为环路的主极点 LDO输出极点随负载电流变化而变化 当负载电流变小 RL增大 Ppow的输出极点也
  • RPC调用的流程

    RPC调用的流程 要让网络通信细节对使用者透明 我们自然需要对通信细节进行封装 我们先看下一个RPC调用的流程
  • 【svelte】A11y: <div> with click handler must have an ARIA role;A11y: non-interactive elements

    问题描述 svelte项目跑起来的时候 控制台打印以下警告 vite plugin svelte src routes page svelte 50 8 A11y visible non interactive elements with
  • Servlet文件上传

    1 创建upload html文件为了提交上传表单
  • matlab 和 excel 数据的导入导出

    1 将excel中的数据导入到matlab中 将excel中 的数据导入到matlab中采用matlab库函数xlsread 1 C xlsread filename xls 2 C xlsread filename xls range 表
  • import java util_java里面import java.util.*;是什么用处?

    展开全部 import java util 导入32313133353236313431303231363533e78988e69d8331333366303064 java util包中的类接口 Java中import的作用是导入要用到的
  • 实验——田忌赛马c++

    故事概述 孙膑先以下等马对齐威王的上等马 第一局田忌输了 接着进行第二场比赛 孙膑拿上等马对齐威王的中等马 获胜了一局 第三局比赛 孙膑拿中等马对齐威王的下等马 又战胜了一局 比赛的结果是三局两胜 田忌赢了齐威王 还是同样的马匹 由于调换一
  • grep高级用法shell

    一 grep命令的基本概念和用途 grep命令是linux中一种强大的文本搜索工具 它能使用正则表达式搜索文本 并把匹配的行打印出来 在一个或多个文件中搜素字符串模式 如果字符串模式包括空格 也必须被引用 模式后的所有字符串被看作文件名 搜
  • 在头文件中加入#program once

    在头文件中加入 program once 可以解决头文件被重复引用的问题 例 error C2143 语法错误 缺少 在 的前面 error C4430 缺少类型说明符 假定为 int 注意 C 不支持默认 int error C4430
  • 中国汽车工业的发展道路

    中国汽车工业的发展道路 回顾与展望 合作与自主问题 1 中国汽车工业发展的背景与回顾 1 1 认识汽车工业 汽车是惟一的一种 零件以万计 产量以百万计 保有量以亿计 的 第一商品 它的巨大市场潜力 不断产生着科技进步的不竭动力 使它成为各种
  • Kotlin中take、drop方法使用

    1 take方法 private fun take val mList mutableListOf 1 2 3 4 5 6 7 8 9 0 take函数是根据传入的参数挑出该集合 前n个元素 的子集合 val mNewList1 mList