java - 在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
为什么数组列表不反映第一个对象值?
解决方案
因为您只创建一个对象并在设置属性时第二次覆盖。
插入第二个对象时需要创建新对象。