这两者有什么区别?

时间:2016-01-01 07:00:39

标签: java arraylist

我正在使用用户定义的 arrayList 并从settergetter类添加元素,并且有2个场景

使用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);
  } 

在这种情况下,当我迭代我得到正确的ans,因为我想..即第一个元素,然后第二个等等

正常情况

在这种情况下,我创建了2个settergetter类对象并将其添加到arraylist

  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);

在这种情况下,我得到的只是最后添加的对象即知更鸟

在我创建类

的不同实例的两种情况下

我正在使用迭代器:

  Iterator itr=a1.iterator();
  while(itr.hasNext())
  {
     settergetter element = (settergetter) itr.next();
     System.out.println(element.getName());
     System.out.println(element.getEmail());
  }

1 个答案:

答案 0 :(得分:1)

如果仔细查看,您仍然设置为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);