如何在一个变量中组合更多ArrayLists?

时间:2017-03-23 11:52:19

标签: java arraylist jxl

我在另一个类

中有这个构造函数
  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变量中的所有数据。  谢谢你的回答。

2 个答案:

答案 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<>();