2016-12-18 11 views
-5

私は、各インスタンスが4つのフィールドを持つセットを持っています。 Array [i] [j]に変換します。ここで、各[j]行はインスタンスを表します。セットをJavaの2D配列に変換するにはどうすればよいですか?

編集: 私の悪い質問の構築のために申し訳ありません。私は、javax.swing.table.AbstractTableModelを持つテーブルのTreeSetデータを表すprogrammを作成しようとしています。 実際の問題は、すべてのテーブル要素にインデックスが必要なAbstractTableModelのgetValueAt(int r、int c)メソッドにありました。セットにはインデックスがないので、データを2D配列に変換することを決定しました。しかし、今私はSetValueAt(Object値、int r、int c)、どこに私は編集したデータをSetに変換する必要があります。 今私は配列の代わりにリストにこのセットを変換することを考えているので、簡単に戻って転送することができます。

+0

は、あなたがこれまでに –

+1

を試してみたそして、私の質問が何であるかを私たちに示して? Javaは*オブジェクト指向言語*です。オブジェクトリストを配列に解決するだけで間違っていると感じます... –

答えて

0

ができるしてみましょう:

public class MyClassWhithFourFields { 
String field1; 
int field2; 
Object field3; 
double field4; 
} 

今、あなたは、このテンプレートを使用してセットを宣言することができます:あなたのセットの中

Set<MyClassWhithFourFields> mySet = new HashSet<MyClassWhithFourFields>(); 

は、4つのフィールドを持っている、あなたのオブジェクトです。

2次元配列を宣言する場合は、どの型を指定する必要がありますか? - 最も一般的な親が可能であり、この場合はObjectです。

だから、関数を宣言ANそれを実装:なぜ:

Object[][] transformSetTo2dArray(Set <MyClassWhithFourFields> mySet) { 
if (mySet == null) { 
    return null; 
} 
Object[][] result = new Object[4][mySet.size()]; 
int j = 0; 
// iterate the set: 
for (MyClassWhithFourFields myObject: mySet) { 
    myObject[0][j] = myObject.field1; 
    myObject[1][j] = myObject.field2; 
    myObject[2][j] = myObject.field3; 
    myObject[3][j] = myObject.field4; 
    j++; 
} 
return result; 
} 
関連する問題