You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin技术问询:如何过滤列表中小于首个元素的元素?

Kotlin链式调用中基于列表首元素过滤的解决方案

你可以借助Kotlin的作用域函数在链式调用里直接获取列表的首元素,无需额外保存列表引用,以下是几种实用实现方式:

基础实现(假设列表非空)

用run函数将列表作为上下文对象,在filter中直接调用first()获取首元素进行比较:

val result = listOf(3, 5, 2, 7, 1, 0, 9)
    .run { filter { it >= first() } }
// 输出结果:[3, 5, 7, 9]

空安全版本

如果需要处理列表为空的情况,用firstOrNull()避免抛出异常:

val result = listOf(3, 5, 2, 7, 1, 0, 9)
    .run { 
        val firstElement = firstOrNull() ?: return@run emptyList()
        filter { it >= firstElement }
    }

当列表为空时,会直接返回空列表,不会触发NoSuchElementException。

用let实现的替代写法

如果你更习惯通过参数引用对象,也可以用let:

val result = listOf(3, 5, 2, 7, 1, 0, 9)
    .let { list -> list.filter { it >= list.first() } }

内容的提问来源于stack exchange,提问作者Nic Wilson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 14:55:21