Kotlin实现嵌套列表匹配元素时删除列表首项的高效方法
Kotlin 大分类列表首项校验删除实现
对应数据结构定义
data class Categories( val id: String?, val title: String, val subTopic: List<SubTopic>? ) data class SubTopic( val id: String?, val title: String, var priceId: String? )
核心实现代码
操作可变分类列表val categoryList: MutableList<Categories>时,直接使用以下逻辑即可:
if (categoryList.isNotEmpty()) { val needRemoveFirst = categoryList.first().subTopic ?.any { it.title == "vivek" } ?: false if (needRemoveFirst) { categoryList.removeAt(index = 0) } }
实现特性说明
- 性能最优:全程仅访问列表第0位元素,完全不遍历外层列表的其他项,适配大列表场景;嵌套列表判断使用
any()短路逻辑,找到第一个title为"vivek"的SubTopic元素就立刻终止遍历,不会遍历整个subTopic列表 - 边界覆盖:自动处理列表为空、首项subTopic为null的异常场景,不会触发索引越界、空指针错误
- 逻辑符合预期:匹配命中后直接移除整个首项Categories对象,后续元素自动前移,不会出现仅清空subTopic子列表的错误
- 符合Kotlin惯用法:基于Kotlin空安全操作符、内置集合高阶函数实现,无冗余的手写循环、多层嵌套判空代码,可读性强
内容的提问来源于stack exchange,提问作者Compose Learner
相关产品推荐
相关产品推荐

