java - 两者有什么区别?

标签 java arraylist

我正在使用用户定义的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/

相关文章:

java - 指定不带表的字段

java - Java如何获取文件夹中的所有文件

java - 操作栏选项卡全部显示在一个 View 中,而不是可滚动

java - 尝试使用递归将文件中的单词添加到数组列表中

java - android studio 构建时出错

java - 通过 javax.inject.Provider 进行 Spring 注入(inject)太慢

java - 实现自己的算法来调整 ArrayList 的大小

java - 为什么我的 ArrayList 没有循环遍历所有值?

java - 如果所有代码都在 run() 方法内,如何关联实例变量?

java - 从 Java 中的另一个 ArrayList 获取 ArrayList 的 ArrayList