| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> Kotlin学习——集合(二) -> 正文阅读 |
|
[移动开发]Kotlin学习——集合(二) |
区间与数列Kotlin 可以通过调用 kotlin.ranges 包中的 rangeTo() 函数及其操作符形式的 .. 轻松地创建两个值的区间。通常,rangeTo() 会辅以 in 或 !in 函数
区间由两个端点值定义,这两个端点值都包含在该区间内。区间是为可比较类型定义的:具有顺序,可以定义任意实例是否在两个给定实例之间的区间内。 区间的主要操作是 contains,通常以 in 与 !in 操作符的形式使用 要为类创建一个区间,请在区间起始值上调用 rangeTo() 函数,并提供结束值作为参数。 rangTo() 通常以操作符 .. 形式调用 数列整数类型的区间(例如 Int、Long 与 Char)可视为等差数列。在 Kotlin 中,这些数列由特殊类型定义:IntProgression、LongProgression 与 CharProgression 数列具有三个基本属性:first 元素、last 元素 和 一个非零的 step。首个元素为 first,后续元素是前一个元素加step。除非数列为空,否则最后一个元素总是被迭代命中。 序列(Sequence<T>)序列提供与 Iterable 相同的函数,但实现另一种方法来进行多步骤集合处理。 当 Iterable 的处理包含多个步骤时,它们会优先执行:每个处理步骤完成并返回其结果——中间集合。在此集合上执行以下步骤。反过来,序列的多步处理在可能的情况下会延迟执行:仅当请求整个处理链的结果时才进行实际计算。 操作执行的顺序也不同:Sequence 对每个元素逐个执行所有处理步骤。而 Iterable 完成整个集合的每个步骤,然后进行下一步 所以,序列可以避免生成中间步骤的结果,从而提高整个集合处理链的性能。但是,序列的延迟性质增加了一些开销,这些开销在处理较小的集合或进行更简单的计算时可能很重要。 构造由元素 要创建一个序列,需调用 sequenceOf() 函数,列出元素座位其参数
由 Iterable 如果已经有一个 Iterable 对象(例如 List 或 Set),则可以通过调用 asSequence() 从而创建一个序列。
由函数 创建序列的另一种方法是痛殴使用计算其元素的函数来构建序列。要以该函数作为参数调用 generateSequence() 。可以将第一个元素指定为显示值或函数调用的结果。当提供的函数返回 null 时,序列生成停止。
要使用 generateSequence() 创建有限序列,需提供一个函数,该函数在需要的最后一个元素之后返回 null
由组块 sequence() 函数可以逐个或按任意大小的组块生成序列元素,此函数采用一个 lambda 表达式,其中包含 yield() 与 yieldAll() 函数的调用。它们将一个元素返回给序列使用者,并暂停 sequence() 的执行,直到使用者请求下一个元素。 yield() 使用单个元素作为参数 yieldAll() 中可以采用 Iterable 对象、Iterable 或 其他 Sequence; 该函数的 sequence 参数可以是无限的。当然,这样的调用必须是最后一个,之后的所有调用都永远不会执行
序列操作关于序列操作,根据其状态要求可以分为以下几类:
如果序列操作返回延迟生成的另一个序列,则称为中间序列。否则,该操作为末端操作。末端操作的示例为 toList() 或 sum()。只能通过末端操作才能检索序列元素。 常用函数taketake():?根据传入的参数挑出该集合【前 n 个元素】的子集合 takeLast(): 根据传入的参数挑出该集合【倒数n个元素】的子集合 takewhile():从头开始取值,不符合立即停止 takeLastWhile():从尾开始趋之,不符合立即停止 takeIf():如果满足条件则返回它 takeUnless():如果不满足条件则返回它
dropdrop():去掉前n个开始取值 dropLast():去掉最后 n 个开始趋之 dropLastWhile():从最后开始找不满足的开始取值,满足的抛弃尾部 dropWhile():从头开始找不满足的开始取值,满足的抛弃头部 |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 12:52:11- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |