固定数の列を持つ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
が 1 つの列を表す の配列を作成する、または:
ArrayList<Object[]> rows = new ArrayList<Object[]>();
// Each ArrayList element is one row.
public Object getValueAt(int row, int column) {
return rows.get(row)[column];
}
つまり、配列を保持する 1 つの ArrayList を作成し、それぞれが 1 つの行を表します。
これらのうち、速度またはストレージの点でより効率的なアイデアはありますか? 代替案 1 ではArrayList
、行を追加するたびに N を拡張する必要がありますが、代替案 2 では、1 つだけ拡張するだけでArrayList
なく、長さ N の新しい配列を作成する必要があります (新しい行を表すため)。または、明白でより良い解決策はありますか?