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

Kotlin中如何将ArrayList元素添加到模型类ArrayList并修复元素全为最后值问题

问题原因分析

你在循环外部仅创建了唯一1个ChaplainAvailableTimesModelClass类实例,ArrayList存储的是对象的内存引用而非独立副本,循环过程中你反复修改同一个实例的time属性,同时多次将同一个实例的引用添加到列表中,最终列表内所有元素都指向同一个对象,所以值都会和最后一次修改的结果保持一致。

修复方案

将模型类实例化逻辑移到循环内部,每次循环都创建独立的新实例即可:

dbSaveAvailableTimes = db.collection(chaplainCollectionName).document(chaplainUserId)
for (k in 0 until temporaryTimes.size){
    // 每次循环创建新的独立实例
    val chaplainAvailableTimesModelClass = ChaplainAvailableTimesModelClass(time = temporaryTimes[k])
    chaplainAvailableTimes.add(chaplainAvailableTimesModelClass)
}
可选优化写法

Kotlin中可以用更简洁的映射方式直接生成目标列表,避免手动写循环和add操作:

chaplainAvailableTimes = temporaryTimes.map { 
    ChaplainAvailableTimesModelClass(time = it)
} as ArrayList<ChaplainAvailableTimesModelClass>
// 若需要保留原有列表内容,可直接调用addAll:
chaplainAvailableTimes.addAll(temporaryTimes.map { ChaplainAvailableTimesModelClass(time = it) })

内容的提问来源于stack exchange,提问作者kadir yapar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 21:06:04