我尝试在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)
请帮忙,谢谢
答案 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);
}