有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java需要ArrayList中的单个数组

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

简单介绍一下背景:我正在从一个可变维度的excel表格中读取值(这意味着它可以是1x1、100x100表格,或者介于两者之间的任何地方),因此需要ArrayList。列数和行数由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();
    }

如果我要打印“列表”,我会得到以下信息:

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

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

任何帮助都将不胜感激


共 (1) 个答案

  1. # 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);