使用for循环java将多个对象添加到ArrayList

时间:2013-11-07 15:50:50

标签: java arraylist

我尝试在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 ArrayList中的所有数据都是word.get(2),而不是word.get(0), word.get(1), word.get(2)

请帮忙,谢谢

3 个答案:

答案 0 :(得分: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);               
}

答案 1 :(得分: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);
}

答案 2 :(得分: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);               
    }