我正在创建一个 TableModel,它将有固定数量的列,但行数将随时间变化而改变(通常会随时间增加)。存储数据的更好方法是什么?
ArrayList[] columns = new ArrayList[numberOfColumns];
// Each array element is one column. Fill each of them with a new ArrayList.
...
public Object getValueAt(int row, int column) {
return columns[column].get(row);
}
即创建一个ArrayList
数组,每个ArrayList
表示一列,或者:
ArrayList<Object[]> rows = new ArrayList<Object[]>();
// Each ArrayList element is one row.
public Object getValueAt(int row, int column) {
return rows.get(row)[column];
}
即创建一个ArrayList,其中包含代表每行的数组。
有什么想法是哪种方法在速度或存储方面更有效?选择1需要在添加每行时扩展N个ArrayList,而选择2只需要扩展一个ArrayList,但还需要创建一个长度为N的新数组(以表示新行)。还是有明显更好的解决方案吗?