Estoy creando un TableModel que tendrá un número fijo de columnas, pero el número de filas cambiará (mayormente, aumentando como función del tiempo). Qué sería mejor enfoque para almacenar los datos,ArrayList de matrices vs. array de ArrayLists vs. algo similar
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);
}
es decir, la creación de una matriz de ArrayList
s, cada ArrayList
que representa una columna, o:
ArrayList<Object[]> rows = new ArrayList<Object[]>();
// Each ArrayList element is one row.
public Object getValueAt(int row, int column) {
return rows.get(row)[column];
}
es decir, la creación de uno ArrayList que mantiene las matrices, cada uno de que representan una fila
¿Alguna idea de cuál de estos es más eficiente en términos de velocidad o almacenamiento? La alternativa 1 requiere extender N ArrayList
s con cada fila agregada, mientras que la alternativa 2 requiere extender solo un ArrayList
pero también crear una nueva matriz de longitud N (para representar la nueva fila). ¿O hay una solución obvia, mejor?
Buena pregunta. ¿Desea poder cambiar fácilmente el número de filas y/o columnas? Además, ¿desea permitir que las filas tengan columnas de longitud variable? Editar: mi mal, no leí completamente la primera parte de su pregunta. – Tom
Sí, el número de columnas es fijo, pero el número de filas está cambiando. –