Joo*_*kka 6 java arrays arraylist tablemodel data-structures
我正在创建一个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);
}
Run Code Online (Sandbox Code Playgroud)
即创建一个ArrayLists 数组,每个数组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];
}
Run Code Online (Sandbox Code Playgroud)
即创建一个包含数组的ArrayList,每个数组代表一行.
有哪些想法在速度或存储方面更有效?备选方案1要求ArrayList在每个添加的行中扩展N s,而备选方案2要求仅扩展一个,ArrayList但也创建长度为N的新数组(以表示新行).还是有一个明显的,更好的解决方案?
如果列数是固定的,那么您的数据可能是面向行的,或者至少是行变量,此时每行应该是一个数组.固定数量的列意味着您无需重新分配阵列.
所以你的结构是:
List<Object[]> rows;
Run Code Online (Sandbox Code Playgroud)
数组元素是一行.
但是,您的行对象应该有几个选项:
List或其他Collection; 要么(3)可以通过使用某种接口来完成,该接口允许您查询列的数量,类型和名称.