程序1:
public class TestArrayList {
ArrayList<TestVO> list=new ArrayList<TestVO>();
TestVO test5=new TestVO();
public ArrayList<TestVO> getArrayList2() {
test5.setName("jagadeesh");
test5.setPhnNo("123456789");
list.add(test5);
test5.setName("Prasana");
test5.setPhnNo("987456321");
list.add(test5);
return list;
}
}
程序2:
public class TestVO {
String name;
String phnNo;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhnNo() {
return phnNo;
}
public void setPhnNo(String phnNo) {
this.phnNo = phnNo;
}
}
程序3:
public class TestMain {
public static void main(String[] args) {
TestArrayList aList=new TestArrayList();
ArrayList<TestVO> test=aList.getArrayList2();
for (TestVO testVO : test) {
System.out.println("name is: "+testVO.getName());
System.out.println("name is: "+testVO.getPhnNo());
}
}
}
输出:
name is: Prasana
name is: 987456321
name is: Prasana
name is: 987456321
在执行上面的程序时,我不明白为什么第二个元素也替换第一个元素。请帮我解决这个问题? 将元素添加到数组列表时出现问题
最佳答案
您正在重复使用同一个对象并将其添加到列表中两次,因此列表中的所有(两个)对象都将是相同的。 您应该为每一轮创建一个新的:
public ArrayList<TestVO> getArrayList2() {
TestVO t = new TestVO();
t.setName("jagadeesh");
t.setPhnNo("123456789");
list.add(t);
t = new TestVO(); // Note the new object creation
t.setName("Prasana");
t.setPhnNo("987456321");
list.add(t);
return list;
}
关于java - 如何向数组列表中添加元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25468811/