java - 无法在 ArrayList 中添加对象?

标签 java optimization

您好,我正在尝试将一个对象添加到 Arraylist 中,我正在使用 Java。但它并没有像我预期的那样工作。

假设我们有一个类Sentence,所以代码看起来像

ArrayList<Sentence> result = new ArrayList<Sentence>();
for (int i =0; i<10;i++)
{
    Sentence s = new Sentence(i.toString(),i);
    //there is a string and an int in this Sentence object need to be set
    result.add(s); 
}

上面的那个工作正常。但是我想加速我的代码,所以我尝试只新建一个对象,代码变成:

ArrayList<Sentence> result = new ArrayList<Sentence>();
Sentence s = new Sentence(" ",0);
for (int i =0; i<10;i++)
{
    s.setString(i.toString());
    s.setInt(i);
    result.add(s); 
}

但是,在这种情况下,我的结果将变为空。我想我确实更改了对象 s 中的内容,但我不知道为什么它在 result.add(s) 期间不起作用。

非常感谢您的回复。

最佳答案

您的 s 变量总是引用同一个对象。看起来您要添加同一个对象 10 次,到 for 循环结束时,它的字符串将等于 "9" 并且它的 int 等于 9

关于java - 无法在 ArrayList 中添加对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10291938/

相关文章:

r - 理解 R 中 optim() 的 maxit 参数

mysql - 博客系统中的数据库设计

python - 使用大数据集 Python 优化循环

java - 在 jCombobox 上实现自动完成

java - 需要比较没有秒的日期对象

python - matplotlib 茎图的优化

java - JFrame 设置的简短编写方式

java - 用maven打包时如何指定主类?

JAVA - 使用循环初始化锯齿状 3D 数组?

java - 应用程序空指针异常