2013-07-17 3 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

1 차원 목록은 2 차원 배열로 갈 수 없습니다. [5] [1]에서 무엇을 기대합니까? –

답변

1

것 같아요 것입니다 당신의 잘못하다 또는이 라인에 온다 :

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

당신은 방법을 1 차원 배열 ( new String[dates.size()])을주고 그것을 2 차원 배열 ( String[][] SundayArray) 만들기 위해 노력했다.

또한 List<LocalDate>String[]으로 암시 적으로 변환하려고합니다. 불가능합니다. 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 (원시 메소드)에 java.util.ArrayList.toArray \t (알 소스)에 \t에서 Test.main (Test.java:27) – NickName