java 表格按时间排序
时间: 2023-07-20 10:39:12 浏览: 77
要按时间排序,需要将时间数据以 Date 类型存储,并且使用 Comparator 接口实现自定义排序方法。
以下是一个示例代码片段:
```java
// 假设有一个名为 table 的 JTable 对象,其中第一列是时间数据
// 首先将时间字符串转换为 Date 类型,并存储在一个 List<Object[]> 中
List<Object[]> dataList = new ArrayList<>();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
for (int i = 0; i < table.getRowCount(); i++) {
String timeStr = (String) table.getValueAt(i, 0);
try {
Date time = dateFormat.parse(timeStr);
Object[] row = new Object[table.getColumnCount()];
for (int j = 0; j < table.getColumnCount(); j++) {
row[j] = table.getValueAt(i, j);
}
row[0] = time;
dataList.add(row);
} catch (ParseException e) {
// 时间格式不正确,忽略该行
}
}
// 使用 Comparator 接口实现自定义排序方法
Comparator<Object[]> comparator = new Comparator<Object[]>() {
@Override
public int compare(Object[] o1, Object[] o2) {
Date time1 = (Date) o1[0];
Date time2 = (Date) o2[0];
return time1.compareTo(time2);
}
};
// 对 dataList 进行排序
Collections.sort(dataList, comparator);
// 将排序后的数据更新到表格中
for (int i = 0; i < dataList.size(); i++) {
Object[] row = dataList.get(i);
for (int j = 0; j < table.getColumnCount(); j++) {
table.setValueAt(row[j], i, j);
}
}
```
该代码将表格中第一列的时间数据转换为 Date 类型,并使用 Comparator 接口实现了按时间排序的方法,最后将排序后的数据更新到表格中。