gpt4 book ai didi

java - 返回多个 ArrayList>

转载 作者:太空宇宙 更新时间:2023-11-04 13:12:34 24 4
gpt4 key购买 nike

我有一个方法,它创建了 4 个数组列表的数组列表,我正在尝试返回该数据。我知道它不会让我执行多个返回语句,那么有没有一种方法可以将 ArrayList 组合在一起返回?

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();
}
}

}

最佳答案

如果您有一定数量的 ArrayList,那么最有效的方法是创建一个 ArrayList 数组,如下所示:

ArrayList<ArrayList<String>>[] array = new ArrayList<ArrayList<String>>[] {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<String>>[] array = (ArrayList<ArrayList<String>>[])  Array.newInstance(arrayList1.getClass(), arrayList1.size());

*假设 arrayList1 是 OP 提到的 ArrayList 之一

关于java - 返回多个 ArrayList<ArrayList<String>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33818487/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com