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 ArrayListでしたword.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 に答える