Tworzę TableModel, który będzie miał stałą liczbę kolumn, ale liczba wierszy będzie się zmieniać (głównie, zwiększając w funkcji czasu). Co byłoby lepsze podejście do przechowywania danych,ArrayList z tablic vs. tablica ArrayLists vs. coś podobnego
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);
}
tj tworząc tablicę ArrayList
S, każda ArrayList
reprezentujący jedną kolumnę, czyli
ArrayList<Object[]> rows = new ArrayList<Object[]>();
// Each ArrayList element is one row.
public Object getValueAt(int row, int column) {
return rows.get(row)[column];
}
tj tworząc jeden ArrayList, która posiada tablic, każda z które reprezentują jeden rząd.
Jakieś pomysły, które z nich są bardziej wydajne pod względem szybkości lub miejsca przechowywania? Opcja 1 wymaga rozszerzenia N ArrayList
s dla każdego dodanego wiersza, podczas gdy wariant 2 wymaga rozszerzenia tylko jednego ArrayList
, ale także utworzenia nowej tablicy o długości N (reprezentującej nowy wiersz). Czy istnieje oczywiste, lepsze rozwiązanie?
dobre pytanie. Czy chcesz łatwo zmienić liczbę wierszy i/lub kolumn? Dodatkowo, czy chcesz, aby wiersze miały kolumny o różnych długościach? Edycja: moja zła, nie w pełni przeczytałem pierwszej części twojego pytania. – Tom
Tak, liczba kolumn jest stała, ale zmienia się liczba wierszy. –