我设法制作了一个程序,我可以在其中从 excel 文件中读取数据并将它们存储在 mysql 的表中。我的程序读取每个文件的第一行,为表创建字段并将其余数据存储为每列中的值。正因为这是以编程方式发生的,所以我选择使用 LinkedHashMap 读取所有值。一切正常。但是当我完成并测试我的程序时,我的控制台中出现错误。错误是由 LinkedHashMap 引起的,因为如果映射先前包含键的映射,则旧值将替换为指定值。
解析数据的代码如下:
private static List<TableRow> parseExcelColumnData(List sheetData) {
// read each row from 1 to the last
ArrayList<TableRow> tousRows = new ArrayList<TableRow>();
for (int rowCounter = 1; rowCounter < sheetData.size(); rowCounter++) {
List list = (List) sheetData.get(rowCounter);
LinkedHashMap<String, Integer> tableFields = new LinkedHashMap(list
.size());
String str;
String[] tousFields = new String[list.size()];
int i = 0;
Cell cell = (Cell) list.get(0); // get the first column
long currentID = (long) cell.getNumericCellValue();
for (int j = 0; j < list.size(); j++) { //get the rest
cell = (Cell) list.get(j);
if (cell != null) {
if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC) {
...
...............
}
}
}
tousRows.add(new TableRow(currentID, tableFields));
}
return tousRows;
}
谁能帮助我如何将“tableFields”设为 ArrayList 以免替换旧值?