kotlin集合操作符——总数操作符

简介: 关于集合的操作符,直接引用书上的内容,基本上总结的很好了。

关于集合的操作符,直接引用书上的内容,基本上总结的很好了。

any


如果至少有一个元素符合给出的判断条件,则返回true。

val list = listOf(1, 2, 3, 4, 5, 6)
assertTrue(list.any { it % 2 == 0 })
assertFalse(list.any { it > 10 })
复制代码


all


如果全部的元素符合给出的判断条件,则返回true。


assertTrue(list.all { it < 10 })
assertFalse(list.all { it % 2 == 0 })
复制代码


count


返回符合给出判断条件的元素总数。

assertEquals(3, list.count { it % 2 == 0 })
复制代码


fold


在一个初始值的基础上从第一项到最后一项通过一个函数累计所有的元素。

assertEquals(25, list.fold(4) { total, next -> total + next })
复制代码


foldRight


fold一样,但是顺序是从最后一项到第一项。

assertEquals(25, list.foldRight(4) { total, next -> total + next })
复制代码


forEach


遍历所有元素,并执行给定的操作。

list.forEach { println(it) }
复制代码


forEachIndexed


forEach,但是我们同时可以得到元素的index。

list.forEachIndexed { index, value
    -> println("position $index contains a $value") }
复制代码


max


返回最大的一项,如果没有则返回null。

assertEquals(6, list.max())
复制代码


maxBy


根据给定的函数返回最大的一项,如果没有则返回null。

// The element whose negative is greater
assertEquals(1, list.maxBy { -it })
复制代码


min


返回最小的一项,如果没有则返回null。

assertEquals(1, list.min())
复制代码


minBy


根据给定的函数返回最小的一项,如果没有则返回null。

// The element whose negative is smaller
assertEquals(6, list.minBy { -it })
复制代码


none


如果没有任何元素与给定的函数匹配,则返回true。

// No elements are divisible by 7
assertTrue(list.none { it % 7 == 0 })
复制代码


reduce


fold一样,但是没有一个初始值。通过一个函数从第一项到最后一项进行累计。

assertEquals(21, list.reduce { total, next -> total + next })
复制代码


reduceRight


reduce一样,但是顺序是从最后一项到第一项。

assertEquals(21, list.reduceRight { total, next -> total + next })
复制代码


sumBy


返回所有每一项通过函数转换之后的数据的总和。

assertEquals(3, list.sumBy { it % 2 })


目录
相关文章
|
分布式计算 Java 数据安全/隐私保护
Kotlin 学习笔记(二)—— 数据类、枚举类、循环、常用集合及操作符的写法(下 )
Kotlin 学习笔记(二)—— 数据类、枚举类、循环、常用集合及操作符的写法(下)
73 0
|
4月前
|
缓存 数据处理 Android开发
Android经典实战之Kotlin常用的 Flow 操作符
本文介绍 Kotlin 中 `Flow` 的多种实用操作符,包括转换、过滤、聚合等,通过简洁易懂的例子展示了每个操作符的功能,如 `map`、`filter` 和 `fold` 等,帮助开发者更好地理解和运用 `Flow` 来处理异步数据流。
155 4
|
4月前
|
缓存 API Android开发
Android经典实战之Kotlin Flow中的3个数据相关的操作符:debounce、buffer和conflate
本文介绍了Kotlin中`Flow`的`debounce`、`buffer`及`conflate`三个操作符。`debounce`过滤快速连续数据,仅保留指定时间内的最后一个;`buffer`引入缓存减轻背压;`conflate`仅保留最新数据。通过示例展示了如何在搜索输入和数据流处理中应用这些操作符以提高程序效率和用户体验。
57 6
|
6月前
|
存储 API Kotlin
Kotlin中的List集合
Kotlin中的List集合
|
6月前
|
安全 Kotlin
Kotlin中的安全导航操作符?.、空合并运算符?:以及let函数的实践与理解
Kotlin中的安全导航操作符?.、空合并运算符?:以及let函数的实践与理解
|
6月前
|
存储 API Kotlin
Kotlin中的Map集合
Kotlin中的Map集合
103 0
|
6月前
|
存储 API Kotlin
Kotlin中的Set集合
Kotlin中的Set集合
|
编译器 C++ Kotlin
【Kotlin】基础速览(1):操作符 | 内建类型 | 类型转换 | 字符串模板 | 可变 var 和不可变 val
【Kotlin】基础速览(1):操作符 | 内建类型 | 类型转换 | 字符串模板 | 可变 var 和不可变 val
74 0
|
安全 Java Kotlin
Kotlin中空安全操作符,异常处理和自定义异常,以及先决条件函数详解
Kotlin中空安全操作符,异常处理和自定义异常,以及先决条件函数详解
140 0
|
Java Kotlin
Kotlin 学习笔记(二)—— 数据类、枚举类、循环、常用集合及操作符的写法(上)
Kotlin 学习笔记(二)—— 数据类、枚举类、循环、常用集合及操作符的写法(上)
66 0