有人可以告诉我如何从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表的一行。我需要将这三个元素转换为单独的数组,以便以后在已经编写的矩阵代数程序中使用。
任何帮助都将不胜感激!
答案 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);