我想明白爲什麼會發生以下情況:要列出的對象 - >爲什麼我必須創建一個新對象?
數據類型銀行
public class Bank {
String Blz; String Name;
public String getBlz() {
return Blz;
}
public void setBlz(String Blz) {
this.Blz = Blz;
}
public String getName() {
return Name;
}
public void setName(String Name) {
this.Name = Name;
}
}
這按預期工作:
public List<Bank> getSearchResult() {
List<Bank> banks = new ArrayList<>();
Bank bank = new Bank();
bank.setBlz("1");
bank.setName("Berlin");
banks.add(bank);
bank = new Bank();
bank.setBlz("8");
bank.setName("München");
banks.add(bank);
return banks;
}
名單竟爲第一要素1 /柏林和第二個8 /慕尼黑。但是,我不明白:
public List<Bank> getSearchResult() {
List<Bank> banks = new ArrayList<>();
Bank bank = new Bank();
bank.setBlz("1");
bank.setName("Berlin");
banks.add(bank);
//bank = new Bank();
bank.setBlz("8");
bank.setName("München");
banks.add(bank);
return banks;
}
如果我不創建一個新的對象庫如上所示,該列表包含兩次8 /慕尼黑。爲什麼會發生?我不明白這一點,因爲當我添加第一個元素時,它包含1 /柏林。然後我覆蓋這些值並添加第二個值。
感謝
因爲'List'可以有重複,因爲你沒有創建新的對象,你修改現有的。如果你不想要,使用'Set'。 – Maroun
因爲你添加了兩次? –
局部變量'bank'的重用令人困惑。我會使用兩個變量。 – johnchen902