我在另一个类
中有这个构造函数 public <T> initializingWorkbook( Sheet sheet,List <T> column, int index)
{
int rows = sheet.getRows();
for(int row = 1;row < rows;row++)
{
String i = sheet.getCell(index, row).getContents();
coloana.add(Double.parseDouble(i)) ;
}
}
在main()函数中,我必须立即初始化所有这些数组。因此,当我调用initializingWorkbook()函数时,我希望所有这些数组都填充数据(我从excel文件中获取数据)。
ArrayList <Long> timeColumn = new ArrayList<>();
ArrayList <Double> pc1Column = new ArrayList<>();
ArrayList <Double> pc2Column = new ArrayList<>();
ArrayList <Double> ph1Column = new ArrayList<>();
ArrayList <Double> ph2Column = new ArrayList<>();
ArrayList <Double> ph3Column= new ArrayList<>();
编辑:我添加了此构造函数包含的内容。所以基本上
- Sheet sheet
是我从中读取数据的表格;
- List <T> column
是我存储列的变量;
- index
是列的编号。
我需要一次加载我的ArrayList变量中的所有数据。
谢谢你的回答。
答案 0 :(得分:2)
我想你正试图代表一张桌子,不是吗?
您可以为表中的一条记录创建一个类,并存储此类的ArrayList。
public class MyClass {
public Long timeColumn;
public Double pc1Column;
public Double pc2Column;
public Double ph1Column;
public Double ph2Column;
public Double ph3Column;
}
您可以像这样创建ArrayList:
ArrayList<MyClass> myTable = new ArrayList<>();
您添加如下元素:
for(every row in the table) {
String cell1 = sheet.getCell(0, row).getContents();
String cell2 = sheet.getCell(1, row).getContents();
String cell3 = sheet.getCell(2, row).getContents();
String cell4 = sheet.getCell(3, row).getContents();
String cell5 = sheet.getCell(4, row).getContents();
String cell6 = sheet.getCell(5, row).getContents();
MyClass record = new MyClass();
record.timeColumn = Long.parseLong(cell1);
record.pc1Column = Double.parseDouble(cell2);
record.pc2Column = Double.parseDouble(cell3);
record.ph1Column = Double.parseDouble(cell4);
record.ph2Column = Double.parseDouble(cell5);
record.ph3Column = Double.parseDouble(cell6);
myTable.add(record);
}
答案 1 :(得分:0)
最简单的解决方案是列表列表,然后通过索引访问它们。另一种选择是将它们放在地图中。选择取决于您计划如何加载数据并在以后使用它。
请注意,不需要使用具体类型,通用类型就足够了,也是首选。
List<Object> listOfObj = new ArrayList<>();