[英]Adding a date element in GregorianCalendar ArrayList Java
輸入許多日期元素時遇到麻煩,所有其他元素成為我輸入的最后日期。
超類:
SimpleDateFormat sdf = new SimpleDateFormat("MMM dd yyyy");
String year = "1995", month = "12", day = "24";
GregorianCalendar startDate = new GregorianCalendar(Integer.parseInt(year), Integer.parseInt(month), Integer.parseInt(day));
public void addDate(int month, int day, int year){
date.add(startDate);
startDate.set(GregorianCalendar.DAY_OF_MONTH, day);
startDate.set(GregorianCalendar.YEAR, year);
startDate.set(GregorianCalendar.MONTH, month);
}
public String printCal(int i){
return sdf.format(date.get(i).getTime());
}
public void addName(String newName){
name.add(newName);
}
子類:
for(i=0; i<emp.emNum(); i++){
System.out.println("Name: "+ emp.printName(i) + " Date Joined: " + emp.printCal(i));
}
產量
例如,2個元素輸入):
Name: John, Date Joined: December 25, 2000
Name: Peter, Date Joined: December 25, 2000
每次您想添加它時,都需要創建一個GregorianCalendar
實例。 在Java中,當您向列表中添加內容時,基本上只添加了對對象的引用。 如果使用get(i)修改它,則將修改對象
public void addDate(int month, int day, int year){
date.add(new GregorianCalendar(Integer.parseInt(year), Integer.parseInt(month), Integer.parseInt(day));
}
您正在重用對象startDate,這就是您的問題。 您需要為每個新記錄創建一個新的GregorianCalendar實例。
public void addDate(int month, int day, int year)
{
GregorianCalendar myDate = new GregorianCalendar();
myDate.set(GregorianCalendar.DAY_OF_MONTH, day);
startDate.set(GregorianCalendar.YEAR, year);
startDate.set(GregorianCalendar.MONTH, month);
date.add(startDate);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.