我正在尝试将对象添加到数组列表中,但有一点困难。我知道我的问题,但不知道如何解决它。基本上,问题是我正在为数组列表中的对象分配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中以便以后访问。问题是我只存储引用,并且在调用时,似乎每个存储的引用都指向last-in值?
答案 0 :(得分: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变量指向你指定的最后一个引用。