簡體   English   中英

Java:使用 .add(new Methodname()) 將一組字符串值添加到 ArrayList 中的每個元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM