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

循环中向List添加对象后元素重复的技术求助

问题解决:循环添加对象到列表后元素重复的原因及修复

问题原因

你只创建了一个People对象,循环过程中只是反复修改这个对象的name和age属性,然后把同一个对象的引用添加到列表里。列表里的所有元素本质上指向内存中的同一个对象,所以最终所有元素都会显示最后一次循环修改后的属性值。

修复方法

把People对象的创建逻辑放到循环内部,这样每次循环都会生成一个全新的People实例,列表就能存储不同对象的引用了。

修正后的代码:

List<People> peopleList = new ArrayList<People>();

public void test() {
    for(int i=0;i<2;i++){
        // 每次循环创建新的People对象
        People people = new People();
        people.name = "name "+i;
        people.age = "age "+i;
    
        peopleList.add(people);
    }
}

说明

修改后,每次循环都会在内存中生成独立的People对象,各自的属性值对应循环的i值,最终列表里的两个元素就是完全不同的对象,属性也会符合你的预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 09:42:20