如何将多个 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);
}
我在另一个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);
}