0

我尝试在 ArrayList 中添加多个对象,这是我的代码

ArrayList<WordData> unique = new ArrayList<WordData>();
WordData tempWordData = new WordData(); 

        for(int i=0;i<3;i++)
        {
            String temp_word = word.get(i);
            tempWordData.addWord(temp_word);
            unique.add(tempWordData);               
        }

但是,所有的数据unique ArrayListword.get(2),不是word.get(0), word.get(1), word.get(2)

请帮忙,谢谢

4

3 回答 3

2

向 ArrayList 添加元素时,会添加对该元素的引用,如果更改元素,该更改将反映在 ArrayList 中。

您必须在循环内创建一个新的 WordData:

ArrayList<WordData> unique = new ArrayList<WordData>();

for(int i=0;i<3;i++)
{
    WordData tempWordData = new WordData(); 
    String temp_word = word.get(i);
    tempWordData.addWord(temp_word);
    unique.add(tempWordData);               
}
于 2013-11-07T15:54:19.783 回答
0

WordData尝试在循环内初始化您的实例:

ArrayList<WordData> unique = new ArrayList<WordData>();

for(int i=0;i<3;i++) {
    String temp_word = word.get(i);
    WordData tempWordData = new WordData();
    tempWordData.addWord(temp_word);
    unique.add(tempWordData);
}
于 2013-11-07T15:54:21.613 回答
0

您必须在每次迭代中创建一个 WordData 对象:

ArrayList<WordData> unique = new ArrayList<WordData>();

    for(int i=0;i<3;i++)
    {
        WordData tempWordData = new WordData(); 
        String temp_word = word.get(i);
        tempWordData.addWord(temp_word);
        unique.add(tempWordData);               
    }
于 2013-11-07T15:54:59.920 回答