2013-07-17 69 views
0

我想將列表中的日期保存到數組[] []?將LocalDate列表保存到數組[] []

我的目錄是

List<LocalDate> dates = getWeekendDates 
     (new LocalDate(year, month, (day+2)), new LocalDate((year+1), nymonth ,nyday)); 

private static List<LocalDate> getWeekendDates 
    (LocalDate start, LocalDate end) 
{ 
    List<LocalDate> result = new ArrayList<LocalDate>(); 
    for (LocalDate date = start; 
     date.isBefore(end); 
     date = date.plusDays(1)) 
    { 
     int day = date.getDayOfWeek(); 
     // These could be passed in... 
     if (day == DateTimeConstants.SUNDAY) 
     { 
      result.add(date); 
     } 
    } 
    return result; 
} 

我用:

String[] SundayArray = dates.toArray(new String[dates.size()]); 
System.out.println(SundayArray[5]); 

這是錯誤輸出:

Exception in thread "main" java.lang.ArrayStoreException 
    at java.lang.System.arraycopy(Native Method) 
    at java.util.ArrayList.toArray(Unknown Source) 
    at Test.main(Test.java:27) 

線27 String[] SundayArray = dates.toArray(new String[dates.size()]);

+0

一維列表無法進入二維數組。你在[5] [1]期待什麼? –

回答

1

我會想你的呃或來自於這條線:

String[][] SundayArray = dates.toArray(new String[dates.size()]); 

你給方法的一維數組(new String[dates.size()]),並試圖使其成爲一個二維數組(String[][] SundayArray)。

您也試圖隱式地將List<LocalDate>轉換爲String[],這是不可能的。當您嘗試將LocalDate存儲在字符串中時,您的ArrayStoreException出現。您需要更類似的東西:

List<String> temp = new ArrayList(dates.size()); 
for (LocalDate date : dates) { 
    temp.add(date.toString()); //toString() or the appropriate method 
} 
String[] SundayArray = temp.toArray(new String[dates.size()]); 
+0

即使你把 String [] SundayArray = dates.toArray(new String [dates.size()]); 它給了我錯誤 – NickName

+0

這次錯誤是否有所不同?錯誤是什麼意思? – gobernador

+0

這是誤差輸出: 異常在線程「主」 java.lang.ArrayStoreException \t在java.lang.System.arraycopy(本機方法) \t在java.util.ArrayList.toArray(未知來源) \t在Test.main(Test.java:27) – NickName