Java 将LocalDate列表保存到数组[][]

Java 将LocalDate列表保存到数组[][],java,arrays,list,Java,Arrays,List,我想将列表中的日期保存到数组[] 我的名单是 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> 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;
}   
这是错误输出:

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(新字符串[dates.size()])

我猜您的错误出现在这行:

String[][] SundayArray = dates.toArray(new String[dates.size()]);
您为该方法提供了一个一维数组(
newstring[dates.size()]
),并尝试将其设置为二维数组(
String[]]SundayArray

您还试图将
列表
隐式转换为
字符串[]
,这是不可能的。当您尝试将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()]);
List temp=newarraylist(dates.size());
对于(本地日期:日期){
temp.add(date.toString());//toString()或适当的方法
}
String[]SundayArray=temp.toArray(新字符串[dates.size()]);

一维列表不能进入二维数组。在[5][1]处,您期望得到什么?即使您将字符串[]SundayArray=dates.toArray(新字符串[dates.size()]);这是错误输出:线程“main”中的异常java.lang.ArrayStoreException位于java.lang.System.arraycopy(本机方法)位于java.util.ArrayList.toArray(未知源代码)位于Test.main(Test.java:27)非常感谢!如果我想把它放到一个数组中,第一列是二维的;如果需要,可以使用
新建字符串[]{date.toString(),“”
,而不是
date.toString()
,并将temp设置为
列表
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()]);