我需要创建几个联系人来填充arrayList。当我尝试在for循环中创建类型Contact的Object和Object时,它会继续返回并且通过所有这些对象具有相同的引用。因此,当我更改第一个联系人时,阵列中的每个其他联系人都会更改。我在俯瞰什么?
String[] split = ret.split(";");
this.clear();
for(int j = 0; j<split.length/6;j++)
{
Contact contact = new Contact();
for(int i =j*6; i<split.length;i++)
{
if(i%6==0){contact.setFirst(split[i]);}
else if(i%6==1){contact.setLast(split[i]);}
else if(i%6==2){contact.setCell(split[i]);}
else if(i%6==3){contact.setWork(split[i]);}
else if(i%6==4){contact.setEmail(split[i]);}
}
this.add((E) contact);
}
感谢evrything。
答案 0 :(得分:0)
此:
for(int i =j*6; i<split.length;i++)
应该是:
for(int i =j*6; i< (j+1)*6;i++)
基本上你每次都在j * 6和数组分割的长度之间循环。所以这样,在每个循环中,您都会将字段设置为不同的值,直到最后一个。因此,您的所有联系人都设置了最后一个的值。