首页 > 解决方案 > 在Java中将对象添加到数组列表

问题描述

我正在尝试将对象添加到数组列表并具有以下内容 -

public static void main(String[] args) {

        authors Authors = new authors();
        ArrayList<authors> tabAuthors = new ArrayList<authors>();

        Authors.setAuthId(1);
        Authors.setAuthName("Roald Dahl");
        System.out.println(Authors.toString());
        tabAuthors.add(Authors);


        Authors.setAuthId(2);
        Authors.setAuthName("Julia Donaldson");
        System.out.println(Authors.toString());
        tabAuthors.add(Authors);

        for (int counter =0; counter < tabAuthors.size(); counter++) {
        System.out.println(tabAuthors.get(counter).getAuthId() + " " + tabAuthors.get(counter).getAuthName() );
        }
   }
}

作者类

public class authors {

    private int authId;
    private String authName;


    public int getAuthId() {
        return authId;
    }

    public void setAuthId(int authId) {
        this.authId = authId;
    }

    public String getAuthName() {
        return authName;
    }

    public void setAuthName(String authName) {
        this.authName = authName;
    }

    @Override
    public String toString() {
        return "authors{" +
                "authId=" + authId +
                ", authName='" + authName + '\'' +
                '}';
    }
}

我期待代码返回 - 1 Roald Dahl 2 Julia Donaldson

相反,我得到 - 2 Julia Donaldson 2 Julia Donaldson

为什么数组列表不反映第一个对象值?

标签: javaarraylist

解决方案


因为您只创建一个对象并在设置属性时第二次覆盖。

插入第二个对象时需要创建新对象。


推荐阅读