2012-05-11 9 views
1

テーブルとして提供されるデータを格納する必要がありますが、Javaでどのように使用できますか?Javaのテーブルにはどのようなデータ構造を使用できますか?

列と行を構成するキーはObjectなので、トリプレットとして表すことができる構造体が必要です:<Object Row,Object Col, Object Val>ここで、各行に対してColはvalが1つのみ、すべてのRow X Colはそこにあります値です。

単純な二次元配列を使用し、インデックスを対応するオブジェクトに変換する必要がありますか?

+0

はい、2次元配列またはObject []のArrayListを使用できます。 – Seshagiri

答えて

1
HashMap<Object, ArrayList> myTable = new HashMap<Object, ArrayList>(); 
8

グアバは、必要な場合があるTableコレクションを提供します。詳細については、Guava User Guideを参照してください。

使用例:

Table<Integer, Integer, Object> myTable = HashBasedTable.create(); 
myTable.put(1, 2, "foo"); // put an object in row 1, column 2. 

あなたはグァバを使用したくない場合は、以下のように、ただ、2次元配列を使用します。

Object[][] myTable2 = new Object[5][5]; 
myTable2[0][1] = "foo"; 
3

グアバができない場合は、 Map<Coordinate, Val>を使用します。ここで、Coordinateは行オブジェクトと列オブジェクトを含むカスタムオブジェクトで、equalsとhashCodeを適切に実装します。

+0

私はハイジャックして、ごめんなさい、なぜ(ハッシュ)マップをしてください? +1 – mKorbel

+0

OPが望んでいるのは、私が正しく理解すれば、それぞれのペア(Coordinate)に、値を関連付けることです。 –

+0

私はこの答えが最高です – NimChimpsky

関連する問題