java - 如何向数组列表中添加元素

标签 java arraylist

程序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/

相关文章:

java - 迷宫生成器会跳过点吗?

java - 使用大数组列表加速自动完成算法

android - java.lang.IndexOutOfBoundsException : Invalid index 2, 大小为 2

java - 使用 java 8 流将位字符串转换为枚举数组

java - 在 Prime 面孔日历 p :calendar 中使用模式 "hh:mm a"时,未触发操作或 actionListener

java - JUnit 和 Mockito 的分支覆盖率

java - Java字符串中是否有像Python中的 '%r'这样的格式说明符?

java - 使用 ArrayList 作为堆栈来验证元素对(得到异常结果)

java - 在 spring mvc Controller 访问 arraylist 元素中,其中 arraylist 的包含是类对象

java - 尝试仅使用嵌套的 for 循环(Java)打印一个边上有线条的递增数字金字塔