如何将多个 ArrayLists 分组到一个变量中?

How do i group more ArrayLists in one variable?

我在另一个class

中有这个构造函数
  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 是我读取数据的 sheet; -List <T> column 是我存储列的变量; -index 是列数。 我需要一次将所有数据加载到我的 ArrayList 变量中。 感谢您的回答。

最简单的解决方案是列表的列表,然后按索引访问它们。另一种选择是将它们放在地图中。选择将取决于您计划如何加载数据并在以后使用它。

注意,没有必要使用具体类型,泛型就足够了,也是首选。

List<Object> listOfObj = new ArrayList<>();

我想你是想代表一个 table,是吗?

您可以为 table 中的一条记录创建一个 class,并存储此 class 的 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);
}