嗨我想添加具有不同属性设置的同一对象。但是,当遍历列表时,它给了我最新添加的设置。将对象添加到通用列表
正如你可以看到下面是我的代码。
List<TestObject> list = new ArrayList<TestObject>();
TestObject t= new TestObject();
t.setEmail("[email protected]");
list.add(t);
System.out.println(list.get(0).getEmail());
t.setEmail("The_lawyer99yahoo.com");
list.add(t);
System.out.println(list.get(1).getEmail());
for(TestObject s : list)
{
System.out.println(s.getEmail());
}
输出:
[email protected]
The_lawyer99yahoo.com
The_lawyer99yahoo.com
The_lawyer99yahoo.com
什么我的疑问是,为什么iteretor是给新增加了对象SETING(电子邮件),但当我EXCUTE这种说法System.out.println(list.get(0).getEmail());
其做工精细
为什么for
环刚不断返回最近添加的对象?
在此先感谢。
你不是创建一个新对象,但只需更改内存中同一对象的属性即可。 'List'将允许你多次添加一个Object的同一个实例,所以它可以像你添加多个对象一样“看起来”,事实上,它只是指向同一个对象的一组元素。使用某种“Set”,而您会发现只有一个对象;) – MadProgrammer
您有相同的对象t,所以是相同的参考,您必须在设置2封电子邮件之前制作一个新对象 – nicearma