我想用用戶對象做一個數組列表,但是當試圖向列表中添加一個新對象時,它似乎只能部分工作。ArrayList,對象覆蓋
第1期:當已經添加了對象後,做了.size()名單上,並通過該列表包含此對象的System.out.println證實,它仍然不會增加它的大小。假設我有一個包含100個元素的列表,並且在執行.size()時會輸出該列表。但是,當試圖添加新元素時,.size()仍然會返回100,但.toString()也會返回新對象。
第2期:
使用。新增()我的名單上似乎對象添加到列表中一次,但如果我嘗試再次調用該方法來創建另一個用戶,它僅覆蓋前一個。
這怎麼可能?
這裏是我的方法 「createPerson()」 的代碼片斷:
public void createPerson(){
int pid = handler.getPersonsCount();
pid += 1;
String name = JOptionPane.showInputDialog(null, "What's your name?");
String mail = JOptionPane.showInputDialog(null, "What's your e-mail?");
String phone = JOptionPane.showInputDialog(null, "What's your phone nummber?");
String city = JOptionPane.showInputDialog(null, "Which city are you currently living in?");
String dateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());
handler.addPerson(new Person(pid, name, mail, phone, city, dateTime));
showMsg("The following has been added:" + pid
+ "\nName: " + name
+ "\nMail: " + mail
+ "\nNumber: " + phone
+ "\nCity: " + city
+ "\nDatetime: " + dateTime);
System.out.println(handler.PersonsArraylist.toString());
System.out.println("Size: " + handler.getPersonsCount());
});
}
handler.getPersonsCount():
public int getPersonsCount() {
return PersonsArraylist.size();
}
handler.addPerson():
public void addPerson(Person person) {
PersonsArraylist.add(person);
}
如果需要,我已將它推送到Github,因此您可以瀏覽整個代碼:EENielsen/personseacher_oo
什麼是「PersonsArraylist」?上次我檢查'ArrayList'沒有被破壞([proof](https://ideone.com/uqUFf1)),所以你可以發佈一個MCVE? – 2016-03-04 12:11:27
ArrayList PersonsArraylist = new ArrayList(); –
出於清晰的原因,請使用Java編碼約定來說明「PersonsArraylist」是一個字段的名稱,它應該以小寫字符開始,即'personsArraylist'。現在它看起來很像一個班。 – Thomas