使用for循环创建对象

时间:2014-03-22 23:06:04

标签: java android for-loop object-reference

我需要创建几个联系人来填充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。

1 个答案:

答案 0 :(得分:0)

此:

for(int i =j*6; i<split.length;i++)

应该是:

for(int i =j*6; i< (j+1)*6;i++)

基本上你每次都在j * 6和数组分割的长度之间循环。所以这样,在每个循环中,您都会将字段设置为不同的值,直到最后一个。因此,您的所有联系人都设置了最后一个的值。