我正在使用用户定义的arrayList,并从settergetter
类向其中添加元素,有两种情况
使用for循环
nam[] 和 em[] 是已经声明并包含值的数组
for(int i=0;i<2;i++)
{
settergetter sg = new settergetter();
sg.setName(nam[i]);
sg.setEmail(em[i]);
a1.add(sg);
}
在这种情况下,当我迭代时,我会得到我想要的正确答案..即第一个元素,然后是第二个元素,依此类推
正常情况
在本例中,我创建了 2 个 settergetter 类的对象并将其添加到数组列表中
settergetter sg = new settergetter();
sg.setName("amol");
sg.setEmail("amol@9372");
a1.add(sg);
settergetter sg1 = new settergetter();
sg.setName("robin");
sg.setEmail("robin@9372");
a1.add(sg1);
在这种情况下,我得到的 ans 只是最后添加的对象,即 robin
在这两种情况下,我都创建该类的不同实例
我使用迭代器:
Iterator itr=a1.iterator();
while(itr.hasNext())
{
settergetter element = (settergetter) itr.next();
System.out.println(element.getName());
System.out.println(element.getEmail());
}
最佳答案
如果你仔细观察,你仍然设置为sg
,实际上你将第二个实例命名为sg1
。设置为 sg1 实例并且它可以工作。
settergetter sg1 = new settergetter();
sg.setName("robin");
sg.setEmail("robin@9372");
a1.add(sg1);
应该是这样
settergetter sg1 = new settergetter();
sg1.setName("robin"); // here
sg1.setEmail("robin@9372"); // here
a1.add(sg1);
关于java - 两者有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34554234/