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

如何修改Kotlin列表中对象的字段并返回更新后的列表

Kotlin 实现Post列表首条点赞数+1的方案

方案1:直接修改原列表(适合不需要保留原数据的场景)

直接操作原可变列表的首个元素即可,写法简单高效:

// 安全取值避免空列表报错,修改点赞数
postsList.firstOrNull()?.apply { likes += 1 }

// 打印输出更新后的列表
postsList.forEach { println(it) }

方案2:函数式链式调用(符合你想要的map类扩展函数写法,不修改原数据)

用mapIndexed扩展函数实现,生成全新的更新后列表,不会改动原列表和原对象,更符合函数式编程习惯:

val updatedPostList = postsList.mapIndexed { index, post ->
    // 判断是否为列表第一条数据
    if (index == 0) {
        // 利用data class自带的copy方法复制对象并修改点赞数属性
        post.copy(likes = post.likes + 1)
    } else {
        post
    }
}

// 打印更新后的列表
updatedPostList.forEach { println(it) }

扩展说明

如果你是要固定修改id=1的Post而非列表第一条,只需要把判断条件改成post.id == 1即可,适配列表排序变化的场景:

val updatedPostList = postsList.map { post ->
    if (post.id == 1) post.copy(likes = post.likes + 1) else post
}

内容的提问来源于stack exchange,提问作者Kurtca Bain

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 06:24:08