Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将ArrayList转换为数组数组?_Java_Arrays_Collections_Multidimensional Array_Arraylist - Fatal编程技术网

Java 如何将ArrayList转换为数组数组?

Java 如何将ArrayList转换为数组数组?,java,arrays,collections,multidimensional-array,arraylist,Java,Arrays,Collections,Multidimensional Array,Arraylist,我正在做大学二年级的软件工程项目,遇到了一个问题。我对Java语言(以及一般的编程)相当陌生,因此有可能我对语法理解不好 我有一个方法,我想用来返回Object类型的数组数组。这将在swing JTable中使用。因此,数组的每个元素(即数组本身)都是表中的行,“内部”数组的元素是该行中每列的值 我不知道编码时会有多少列,因此我创建了一个方法来生成依赖于其他对象的数组数组 这是我的代码: public Object[][] getData(ArrayList<IModule>

我正在做大学二年级的软件工程项目,遇到了一个问题。我对Java语言(以及一般的编程)相当陌生,因此有可能我对语法理解不好

我有一个方法,我想用来返回Object类型的数组数组。这将在swing JTable中使用。因此,数组的每个元素(即数组本身)都是表中的行,“内部”数组的元素是该行中每列的值

我不知道编码时会有多少列,因此我创建了一个方法来生成依赖于其他对象的数组数组

这是我的代码:

    public Object[][] getData(ArrayList<IModule> modules) {

    ArrayList<String[]> data = new ArrayList();

    for (Iterator<IModule> m = modules.iterator() ; m.hasNext(); ) {
        IModule module = m.next();
        for (Iterator<ICoursework> c = module.getCoursework().iterator() ; c.hasNext() ; ) {
            ICoursework coursework = c.next();
            String[] row = new String[6];

            row[0] = module.getModuleTitle();
            row[1] = module.getModuleCode();
            row[2] = coursework.getTitle();
            row[3] = coursework.dateToString();
            row[4] = coursework.getLecturer().getFirstName() 
                    + coursework.getLecturer().getSecondName();
            row[5] = getSubmissionDetails(coursework, row);

            data.add(row);
        }
    }
    data.trimToSize();

    return data.toArray();
}
public Object[][]获取数据(ArrayList模块){
ArrayList数据=新的ArrayList();
for(迭代器m=modules.Iterator();m.hasNext();){
IModule模块=m.next();
for(迭代器c=module.getCoursework().Iterator();c.hasNext();){
ICoursework coursework=c.next();
字符串[]行=新字符串[6];
行[0]=module.getModuleTitle();
行[1]=module.getModuleCode();
行[2]=coursework.getTitle();
行[3]=coursework.dateToString();
第[4]行=coursework.Get讲师().getFirstName()
+课程作业。Get讲师().getSecondName();
行[5]=获取提交详细信息(课程作业,行);
添加数据(行);
}
}
data.trimToSize();
返回data.toArray();
}
这显然不能编译,因为ArrayList.toArray()方法返回一个对象[],我需要它返回一个对象[]

据我所知,因为我有一个数组的ArrayList,所以应该将它转换为一个包含数组的数组。但事实并非如此


如果你能发布一个答案,那会很有帮助。谢谢。

尝试
返回数据。toArray(新字符串[][])

你不能那样做。尝试:

public Object[][] getData(ArrayList<IModule> modules) {

    ArrayList<String[]> data = new ArrayList<String[]>();

    for (Iterator<IModule> m = modules.iterator() ; m.hasNext(); ) {
        IModule module = m.next();
        for (Iterator<ICoursework> c = module.getCoursework().iterator() ; c.hasNext() ; ) {
            ICoursework coursework = c.next();
            String[] row = new String[6];

            row[0] = module.getModuleTitle();
            row[1] = module.getModuleCode();
            row[2] = coursework.getTitle();
            row[3] = coursework.dateToString();
            row[4] = coursework.getLecturer().getFirstName() 
                    + coursework.getLecturer().getSecondName();
            row[5] = getSubmissionDetails(coursework, row);

            data.add(row);
        }
    }

    Object[][] arr = new Object[data.size()][6];

    for (int i = 0; i < data.size(); i++) {
        String[] strings = data.get(i);
        for (int j = 0; j < strings.length; j++) {
            arr[i][j] = strings[j];
        }
    }

    return arr;
}
public Object[][]获取数据(ArrayList模块){
ArrayList数据=新的ArrayList();
for(迭代器m=modules.Iterator();m.hasNext();){
IModule模块=m.next();
for(迭代器c=module.getCoursework().Iterator();c.hasNext();){
ICoursework coursework=c.next();
字符串[]行=新字符串[6];
行[0]=module.getModuleTitle();
行[1]=module.getModuleCode();
行[2]=coursework.getTitle();
行[3]=coursework.dateToString();
第[4]行=coursework.Get讲师().getFirstName()
+课程作业。Get讲师().getSecondName();
行[5]=获取提交详细信息(课程作业,行);
添加数据(行);
}
}
Object[]arr=新对象[data.size()][6];
对于(int i=0;i
首先它说数组需要一个维度。但是,即使我放入任意维度,它仍然表示它需要对象[],但找到字符串[]。抱歉
返回数据。toArray(新字符串[]])
谢谢。尽管如此,它仍然要求尺寸。我是多维数组的新手,维度应该是什么。目前我有一个新字符串[data.size()]。对吗?谢谢。我帮了大忙:)