[英]Java: Using .add(new Methodname()) to add a set of String values to each element in an ArrayList
我不確定我是否正確發布了問題,但問題就在這里。 我知道您可以向 ArrayList 的元素添加 String 或 int 值。 但我希望每個元素都是一組字符串名字、姓氏和關系值(理想情況下)。 我不知道這是否對 ArrayList 要求太多,但它會是理想的。
這是 ArrayList
ArrayList<Member> family = new ArrayList<Member>();
family.add(new Member());
family.add(new Member());
family.add(new Member());
family.add(new Member());
for(Member dad : family){
dad.setFirstName("Father");
dad.setLastName("Last");
}
for(Member mom : family){
mom.setFirstName("Mother");
mom.setLastName("Last");
}
for(Member son : family){
son.setFirstName("Son");
son.setLastName("Last");
}
for(Member daughter : family){
daughter.setFirstName("Daughter");
daughter.setLastName("Last");
}
Member 是用於獲取/設置這些值的類,以及用於在控制台上獲取輸出的覆蓋。
但是,當我打印到控制台時,我得到了一個完全錯誤的答案。 我得到了最后一個元素女兒的四次,每個四次:
[Member (firstname=Daughter, lastname=Last), Member (firstname=Daughter, lastname=Last), Member (firstname=Daughter, lastname=Last), Member (firstname=Daughter, lastname=Last)]
[Member (firstname=Daughter, lastname=Last), Member (firstname=Daughter, lastname=Last), Member (firstname=Daughter, lastname=Last), Member (firstname=Daughter, lastname=Last)]
[Member (firstname=Daughter, lastname=Last), Member (firstname=Daughter, lastname=Last), Member (firstname=Daughter, lastname=Last), Member (firstname=Daughter, lastname=Last)]
[Member (firstname=Daughter, lastname=Last), Member (firstname=Daughter, lastname=Last), Member (firstname=Daughter, lastname=Last), Member (firstname=Daughter, lastname=Last)]
是什么賦予了?
順便說一句,這是我用來打印的:
@Override
public String toString() {
return "Member (firstname=" + firstname + ", lastname=" + lastname + ")";
}
代碼中的每個下一個for
循環都會重置上一個在您的family
列表中更新的值。 這就是為什么您的列表只有上次迭代設置的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.