Java 返回多个ArrayList<;ArrayList<;字符串>&燃气轮机;

Java 返回多个ArrayList<;ArrayList<;字符串>&燃气轮机;,java,multidimensional-array,arraylist,Java,Multidimensional Array,Arraylist,我有一个方法,它制作了4个数组列表,我正试图找出返回数据的方法。我知道它不会让我执行多个return语句,所以有没有办法将ArrayLists组合在一起进行返回 public class sys { public static void main(String[] args) { try { FileInputStream file = new FileInputStream(new File("data/database.xlsx")); X

我有一个方法,它制作了4个数组列表,我正试图找出返回数据的方法。我知道它不会让我执行多个return语句,所以有没有办法将ArrayLists组合在一起进行返回

public class sys {
public static void main(String[] args) 
{
    try 
    {
        FileInputStream file = new FileInputStream(new File("data/database.xlsx"));
        XSSFWorkbook mainDB = new XSSFWorkbook(file);

        int i = 0;
        do
        {
            ArrayList<ArrayList<String>> sheet1 = new ArrayList<ArrayList<String>>();
            ArrayList<ArrayList<String>> sheet2 = new ArrayList<ArrayList<String>>();
            ArrayList<ArrayList<String>> sheet3 = new ArrayList<ArrayList<String>>();
            ArrayList<ArrayList<String>> sheet4 = new ArrayList<ArrayList<String>>();
            ArrayList<String> cellArray = new ArrayList<String>();      
            XSSFSheet sheet = mainDB.getSheetAt(i);
            Iterator<Row> rowIterator = sheet.iterator();
            rowIterator.next();
            while(rowIterator.hasNext())
            {
                Row row = rowIterator.next();
                if(row.getRowNum()==0)
                {
                       continue; //skip the first row
                }
                else
                {
                    Iterator<Cell> cellIterator = row.cellIterator();
                    while(cellIterator.hasNext())
                    {
                        Cell cell = cellIterator.next();
                        //switch(cell.getCellType()) 
                        {
                            String c = "";
                            if(cell.getCellType() == Cell.CELL_TYPE_NUMERIC)
                            {
                                c = Integer.toString((int)(cell.getNumericCellValue()));
                            }
                            if(cell.getCellType() == Cell.CELL_TYPE_STRING)
                            {
                                c = cell.getStringCellValue();
                            }
                            cellArray.add(c);
                        }
                    }
                    if (i==0);
                    {
                        sheet1.add(cellArray);
                    }
                    if (i==1);
                    {
                        sheet2.add(cellArray);
                    }
                    if (i==2);
                    {
                        sheet3.add(cellArray);
                    }
                    if (i==3);
                    {
                        sheet4.add(cellArray);
                    }
                }
            }
            return sheet1;
            return sheet2;
            return sheet3;
            return sheet4;

            i++;

        } 
        while (i<4);
        file.close();


    }

    catch (FileNotFoundException error1) {
        error1.printStackTrace();
    } 

    catch (IOException error2) {
        error2.printStackTrace();
    }
}
公共类系统{
公共静态void main(字符串[]args)
{
尝试
{
FileInputStream文件=新的FileInputStream(新文件(“data/database.xlsx”);
XSSFWorkbook mainDB=新XSSFWorkbook(文件);
int i=0;
做
{
ArrayList sheet1=新的ArrayList();
ArrayList sheet2=新的ArrayList();
ArrayList sheet3=新的ArrayList();
ArrayList sheet4=新的ArrayList();
ArrayList=新的ArrayList();
XSSFSheet sheet=mainDB.getSheetAt(i);
迭代器rowIterator=sheet.Iterator();
roweiterator.next();
while(roweiterator.hasNext())
{
行=行迭代器。下一步();
if(row.getRowNum()==0)
{
continue;//跳过第一行
}
其他的
{
迭代器cellIterator=row.cellIterator();
while(cellIterator.hasNext())
{
Cell=cellIterator.next();
//开关(cell.getCellType())
{
字符串c=“”;
if(cell.getCellType()==cell.cell\u TYPE\u NUMERIC)
{
c=Integer.toString((int)(cell.getNumericCellValue());
}
if(cell.getCellType()==cell.cell\u类型\u字符串)
{
c=cell.getStringCellValue();
}
加入(c);
}
}
如果(i==0);
{
活页1.加入(第1页);
}
如果(i==1);
{
表2.添加(X射线);
}
如果(i==2);
{
表3.添加(X射线);
}
如果(i==3);
{
第4张。添加(X射线);
}
}
}
返回表1;
返回页2;
返回表3;
返回表4;
i++;
} 

而(i如果您有一组ArrayList,那么最有效的方法是创建ArrayList数组,如下所示:

ArrayList<ArrayList<String>>[] array = new ArrayList<ArrayList<String>>[] {arrayList1, arrayList2, arrayList3, arrayList4};
ArrayList[]array=newarraylist[]{arrayList1,arrayList2,arrayList3,arrayList4};
或如下:

ArrayList<ArrayList<String>>[] array = new ArrayList<ArrayList<String>>[4];
array[0] = arrayList1;
array[1] = arrayList2;
array[2] = arrayList3;
array[3] = arrayList4;
ArrayList[]数组=新的ArrayList[4];
数组[0]=arrayList1;
数组[1]=arrayList2;
数组[2]=arrayList3;
数组[3]=arrayList4;
编辑:正如评论所指出的,上述内容实际上是不可能的!以下是一个更新的解决方案:

    ArrayList<ArrayList<String>>[] array = (ArrayList<ArrayList<String>>[])  Array.newInstance(arrayList1.getClass(), arrayList1.size());
ArrayList[]数组=(ArrayList[])array.newInstance(ArrayList 1.getClass(),ArrayList 1.size());

*假设ArrayList 1是OP提到的ArrayList之一,如果您有一组ArrayList,那么最有效的方法是创建ArrayList数组,如下所示:

ArrayList<ArrayList<String>>[] array = new ArrayList<ArrayList<String>>[] {arrayList1, arrayList2, arrayList3, arrayList4};
public class ArrayListUtils {

    public static void main(String[] args) {
        ArrayListUtils listUtils = new ArrayListUtils();

        ArrayList<String> one = new ArrayList<>();
        one.add("A");
        one.add("B");

        ArrayList<String> two = new ArrayList<>();
        two.add("AA");
        two.add("BA");

        ArrayList<String> three = new ArrayList<>();
        three.add("AAA");
        three.add("BAA");

        ArrayList<String> four = new ArrayList<>();
        four.add("AAAA");
        four.add("BAAA");

        //If you need ArrayList of four ArrayList<String> object
        ArrayList<ArrayList<String>> arrayList = listUtils.getArrayList(one, two, three, four);

        //If you need List of four ArrayList<String> object
        List<ArrayList<String>> list = listUtils.getList(one, two, three, four);

    }

    /*
     ArrayList<String>... strings :: means varargs 
     */
    public ArrayList<ArrayList<String>> getArrayList(ArrayList<String>... strings) {
        ArrayList<ArrayList<String>> list = new ArrayList<>();
        list.addAll(Arrays.asList(strings));
        return list;
    }

    public List<ArrayList<String>> getList(ArrayList<String>... strings) {
        return Arrays.asList(strings);
    }
}
ArrayList[]array=newarraylist[]{arrayList1,arrayList2,arrayList3,arrayList4};
或如下:

ArrayList<ArrayList<String>>[] array = new ArrayList<ArrayList<String>>[4];
array[0] = arrayList1;
array[1] = arrayList2;
array[2] = arrayList3;
array[3] = arrayList4;
ArrayList[]数组=新的ArrayList[4];
数组[0]=arrayList1;
数组[1]=arrayList2;
数组[2]=arrayList3;
数组[3]=arrayList4;
编辑:正如评论所指出的,上述内容实际上是不可能的!以下是一个更新的解决方案:

    ArrayList<ArrayList<String>>[] array = (ArrayList<ArrayList<String>>[])  Array.newInstance(arrayList1.getClass(), arrayList1.size());
ArrayList[]数组=(ArrayList[])array.newInstance(ArrayList 1.getClass(),ArrayList 1.size());
*假设ArrayList 1是OP提到的ArrayList之一

公共类ArrayList{
public class ArrayListUtils {

    public static void main(String[] args) {
        ArrayListUtils listUtils = new ArrayListUtils();

        ArrayList<String> one = new ArrayList<>();
        one.add("A");
        one.add("B");

        ArrayList<String> two = new ArrayList<>();
        two.add("AA");
        two.add("BA");

        ArrayList<String> three = new ArrayList<>();
        three.add("AAA");
        three.add("BAA");

        ArrayList<String> four = new ArrayList<>();
        four.add("AAAA");
        four.add("BAAA");

        //If you need ArrayList of four ArrayList<String> object
        ArrayList<ArrayList<String>> arrayList = listUtils.getArrayList(one, two, three, four);

        //If you need List of four ArrayList<String> object
        List<ArrayList<String>> list = listUtils.getList(one, two, three, four);

    }

    /*
     ArrayList<String>... strings :: means varargs 
     */
    public ArrayList<ArrayList<String>> getArrayList(ArrayList<String>... strings) {
        ArrayList<ArrayList<String>> list = new ArrayList<>();
        list.addAll(Arrays.asList(strings));
        return list;
    }

    public List<ArrayList<String>> getList(ArrayList<String>... strings) {
        return Arrays.asList(strings);
    }
}
公共静态void main(字符串[]args){ ArrayListUtils=新的ArrayListUtils(); ArrayList one=新的ArrayList(); 一、添加(“A”); 一、添加(“B”); ArrayList two=新的ArrayList(); 二.加入(“AA”); 二、添加(“BA”); ArrayList三=新的ArrayList(); 三、增加(“AAA”); 三、添加(“BAA”); ArrayList四=新的ArrayList(); 四.加入(“AAAA”); 四、添加(“BAAA”); //如果需要四个ArrayList对象的ArrayList ArrayList ArrayList=listUtils.getArrayList(一、二、三、四); //如果需要四个ArrayList对象的列表 List=listUtils.getList(一、二、三、四); } /* ArrayList…strings::意味着varargs */ 公共ArrayList getArrayList(ArrayList…字符串){ ArrayList=新建ArrayList(); addAll(Arrays.asList(strings)); 退货清单; } 公共列表getList(ArrayList…字符串){ 返回数组.asList(字符串); } }
公共类数组结构{
公共静态void main(字符串[]args){
ArrayListUtils=新的ArrayListUtils();
ArrayList one=新的ArrayList();
一、添加(“A”);
一、添加(“B”);
ArrayList two=新的ArrayList();
二.加入(“AA”);
二、添加(“BA”);
ArrayList三=新的ArrayList();
三、增加(“AAA”);
三、添加(“BAA”);
ArrayList四=新的ArrayList();
四.加入(“AAAA”);
四、添加(“BAAA”);
//如果需要四个ArrayList对象的ArrayList
ArrayList ArrayList=listUtils.getArrayList(一、二、三、四);
//如果需要四个ArrayList对象的列表
List=listUtils.getList(一、二、三、四);
}
/*
数组列表