3

JTable構成が好きなように見えString[][]ます...しかし、私は何か他のものを使用する必要があるまで、よりスマートなコンテナーを使用するのが好きです。使っていたArrayList<ArrayList<String>>ので、今はJTable幸せにする必要がありString[][]ます。

ArrayList<String>String[]usingに変換する本当に簡単な方法を見つけましたtoArray()が、多次元配列用の簡単なコンバーターは見つかりませんでした。

最小行数でからArrayList<ArrayList<String>>に行きたいです。String[][]

私はライブラリを検索していて、このコンバーターを見つけることができないようです。誰かがこれに対する良い解決策を提案してくれることを願っています。

前もって感謝します。

4

2 に答える 2

7

ArrayList<ArrayList<String>>メモリ内で隣接していません。つまり、2番目の配列リストにはArrayList<String>sへの参照の配列が格納され、それらの各ArrayListには、入力したアイテムの数よりも大きい配列が存在する可能性があります。

したがって、これを行う唯一の実際の方法は、次のことを繰り返すことです。

ArrayList<ArrayList<String>> data;

//...

String[][] converted = new String[data.size()][];
for (int i = 0; i < converted.length; i++)
    converted[i] = data.get(i).toArray(new String[data.get(i).size()]);
于 2012-05-15T03:06:15.413 に答える
6

おそらく、独自のテーブルモデルの実装を検討する必要があります 。JTable(TableModel dm)

AbstractTableModelを拡張し、リストまたはその他の適切なデータ構造に委任するクラスを作成できます。

于 2012-05-15T03:18:23.010 に答える