Java对表格的增删改查
表格是一种常见的数据结构,用于以表格形式整理和展示数据。在Java中,我们可以使用各种数据结构和库来实现对表格的增删改查操作。本文将介绍几种常见的方法,并提供相应的代码示例。
1. 使用数组实现表格
最简单的方法是使用二维数组来表示表格,其中每个元素表示一个单元格的值。以下是一个使用二维数组实现表格的示例代码:
public class ArrayTable {
private Object[][] data;
private int rows;
private int columns;
public ArrayTable(int rows, int columns) {
this.rows = rows;
this.columns = columns;
this.data = new Object[rows][columns];
}
public Object getValue(int row, int column) {
return data[row][column];
}
public void setValue(int row, int column, Object value) {
data[row][column] = value;
}
}
在上面的代码中,我们使用 data 数组来保存表格数据,rows 和 columns 分别表示表格的行数和列数。通过 getValue 和 setValue 方法可以获取和设置单元格的值。
2. 使用集合框架实现表格
除了数组,我们还可以使用集合框架中的 List 或 Map 来实现表格。这种方法更加灵活,可以动态地添加、删除和修改表格数据。以下是一个使用 List<List<Object>> 实现表格的示例代码:
import java.util.ArrayList;
import java.util.List;
public class ListTable {
private List<List<Object>> data;
public ListTable() {
this.data = new ArrayList<>();
}
public Object getValue(int row, int column) {
return data.get(row).get(column);
}
public void setValue(int row, int column, Object value) {
if (row >= data.size()) {
for (int i = data.size(); i <= row; i++) {
data.add(new ArrayList<>());
}
}
List<Object> rowData = data.get(row);
if (column >= rowData.size()) {
for (int i = rowData.size(); i <= column; i++) {
rowData.add(null);
}
}
rowData.set(column, value);
}
}
在上面的代码中,我们使用 data 列表保存表格数据,其中每个元素是一个包含单元格值的列表。通过 getValue 和 setValue 方法可以获取和设置单元格的值。需要注意的是,当设置超出表格原有行数或列数的值时,需要动态地调整数据结构。
3. 使用第三方库实现表格
除了自己实现表格数据结构,我们还可以使用第三方库来简化操作。Apache POI 是一个常用的Java库,可以用于读取和写入各种办公文档格式,包括Excel表格。以下是一个使用 Apache POI 实现表格增删改查的示例代码:
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class PoiTable {
private Workbook workbook;
private Sheet sheet;
public PoiTable() {
this.workbook = new XSSFWorkbook();
this.sheet = workbook.createSheet();
}
public void load(String filePath) throws IOException {
FileInputStream fis = new FileInputStream(filePath);
this.workbook = WorkbookFactory.create(fis);
this.sheet = workbook.getSheetAt(0);
fis.close();
}
public void save(String filePath) throws IOException {
FileOutputStream fos = new FileOutputStream(filePath);
workbook.write(fos);
fos.close();
}
public Object getValue(int row, int column) {
Row rowData = sheet.getRow(row);
Cell cell = rowData.getCell(column);
Object value = null;
if (cell != null) {
CellType cellType = cell.getCellType();
switch (cellType) {
case STRING:
value = cell.getStringCellValue();
break;
case NUMERIC:
value = cell.getNumericCellValue();
break;
case BOOLEAN:
value = cell.getBooleanCellValue();
break;
case FORMULA:
value = cell.getCellFormula();
break;
default:
break;
}
}
return value;
}
public void setValue(int row, int column, Object value) {
Row rowData = sheet.getRow(row);
if (rowData == null) {
rowData = sheet.createRow(row);
}
Cell cell = rowData.getCell(column);
if (cell == null) {
















