我正在创建一个具有固定列数的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);
}
即创建一个s数组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
s,而备选方案 2 只需要扩展一个ArrayList
,但还需要创建一个长度为 N 的新数组(以表示新行)。还是有明显更好的解决方案?