2011-04-04 82 views
0

我想将一个对象添加到数组列表中,但有点困难。我知道我的问题,但不知道如何解决它。基本上,问题在于我将数组列表中的对象的引用分配给数组列表x次。这很好,我想要这个。然而,参考文献总是变成最后一个附加的东西?数组列表帮助

这里是我的代码:

ID ids = new ID("1", "this is a string", "213", "example", "my", "name", "7939","1d", "1"); 
idarray.add(ids); 

ids = new ID("2", "this too, is a string", "12314", "example2", "my", "name", "250","1234", "1"); 
idarray.add(ids); 

ids = new ID("3", "Hey look! another string!", "10941", "examplar!", "my", "name", "1341","da34", "0"); 
idarray.add(ids); 

ids = new ID("4", "the final example!", "109231091", "for example", "my", "name", "799","DF1234", "0"); 
idarray.add(ids); 

的想法是,我试图创建一个包含所有这些信息的新“] ID”对象,然后将其存储在“IDS”的ArrayList是访问后来。问题是我只存储引用,并且在调用时,似乎每个存储的引用都指向最后一个值?

+0

对不起,我还没有得到什么问题。你可以发布代码给你不想要的结果吗? – 2011-04-04 20:01:23

+0

你发布的代码似乎是正确的。考虑发布一些你得到的输出,表明有什么失败。 – corsiKa 2011-04-04 20:02:26

+0

您的代码看起来正确。你能发布显示“每个存储引用指向最后一个值”的代码吗? – 2011-04-04 20:07:31

回答

0

访问指定的对象。

int index = 0; 
ids = idarray.get(index); 

这样你可以检索你已经添加的对象。

不能存储在变量的所有引用,为您使用数组或集合,这就是为什么在改变至最后值,因为你每次调用时分配新的参考:

ids = new ID("2", "this too, is a string", "12314", "example2", "my", "name", "250","1234", "1"); 
ids = new ID("3", "Hey look! another string!", "10941", "examplar!", "my", "name", "1341","da34", "0"); 

所以现在,ids变量指向您分配的最后一个参考。