Kotlin中如何判断列表内所有元素都满足指定条件
实现方法
在Kotlin中可以直接使用集合内置的all高阶函数实现「所有元素满足指定条件」的判断,函数返回值可直接放入if的判断条件中使用。
你示例中的判断逻辑可以直接替换为:
if (list.all { control % it == 0 })
all函数规则说明
- 遍历集合内的每一个元素,执行传入的lambda校验逻辑
- 只有所有元素的校验结果都为
true时,整体才返回true,效果等价于手动把所有元素的校验条件用&&拼接 - 只要有一个元素不满足条件,就会提前终止遍历返回
false,不会产生多余的性能损耗
补全后的完整可运行代码
fun main() { var control = 20 val list = mutableListOf<Int>() for (i in 1..20) list.add(i) while (true) { control++ // 全列表元素统一校验 if (list.all { control % it == 0 }) { println("满足条件的最小值为:$control") break } } }
上述代码的场景是求1~20的最小公倍数,运行后会输出正确结果232792560。
注意:如果你的业务场景可能出现空集合,
all函数默认会返回true,可以先加集合非空判断再执行校验,避免不符合预期的结果,写法为:if (list.isNotEmpty() && list.all { control % it == 0 })
内容的提问来源于stack exchange,提问作者Serdar Çivi
相关产品推荐
相关产品推荐

