需要ArrayLists

时间:2017-07-10 23:55:10

标签: java arrays arraylist

有人可以告诉我如何从ArrayLists的ArrayList中获取数组吗?有关使用" .toArray()"转换为数组的所有信息似乎只适用于ArrayList,而不适用于ArrayLists的ArrayList。

快速提供背景:我正在从可变维度的excel表中读取值(意味着它可能是1x1,100x100表,或介于两者之间)因此需要ArrayLists。列表和行的数量由excel表计算,以便在java程序本身中轻松访问(如下所示)。

public static void main(String args[]){

    int columns;
    int rows;       
    XSSFWorkbook workbook = new XSSFWorkbook(new FileInputStream("c:\\KalmanInputFile.xlsx"));
    XSSFSheet sheet = workbook.getSheetAt(0);
    XSSFRow row1 = sheet.getRow(1);


    columns = (int) row1.getCell(7).getNumericCellValue();
    rows = (int) row1.getCell(6).getNumericCellValue();

    ArrayList <Double> innerlist = new ArrayList<Double>();

    ArrayList <ArrayList <Double>> list = new ArrayList<ArrayList <Double>>();

    int i;
    int j;

    for (j = 1; j < (rows+1); j++)
    {
        XSSFRow row = sheet.getRow((j-1));

        for (i = 1; i < (columns+1); i++)

        {
            innerlist.add((i-1), row.getCell(i).getNumericCellValue());

        }

        list.add((j-1), new ArrayList<>(innerlist));
        innerlist.clear();
    }

如果我打印&#34;列表&#34;我会得到以下内容:

[[1.0, 1.0, 9.0, 11.0], [0.0, 1.0, 10.0, 12.0], [2.0, 3.0, 4.0, 5.0]]

&#34; list&#34;中的每个元素是Excel文件中3x4表的一行。我需要将这三个元素转换为单独的数组,以便以后在已经编写的矩阵代数程序中使用。

任何帮助都将不胜感激!

1 个答案:

答案 0 :(得分:1)

Double array1[] = new Double[list.get(0).size()];
array1 = list.get(0).toArray(array1);

Double array2[] = new Double[list.get(1).size()]; 
array2 = list.get(1).toArray(array2);

Double array3[] = new Double[list.get(2).size()];
array3 = list.get(2).toArray(array3);