2011-01-26 13 views
2

私は基礎となるデータベースから読んでいる2Dテーブル構造を持っていますが、それを格納するのに使う最高のメモリ内データ構造はなんですか? ここでは、それ以上の読み込み、操作などのためにアクセスすることができます。2次元テーブル構造をメモリに格納するのに適したデータ構造は何でしょうか?

+1

解決策を提示するのが難しい操作を定義していません。データがデータベースから返された順番でアクセスする必要がありますか?そして、行をリストに格納します。それが問題でなければ、マップを使うことができます。すべてのデータが文字列であるかどうかは、各行をListに格納するだけです。データが異なっていて、データの他の処理を行う必要がある場合は、おそらくデータを適切にアクセスできるようにBeanを作成する必要があります。 – camickr

答えて

0

は、たとえばので

column_a(primary), column_b, column_c 
-------------------------------- 
abc    | xyz  | 123 
def    | xxx  | 456 

です:

map.get("abc").get("column_b").equals("xyz") 
map.get("def").get("column_c").equals("456") 

・ホープこれは役に立ちます。 注:テーブルには整数がIDとして含まれていない可能性があるため、最初のマップには文字列のキーが含まれています。 Integerがより良く適合すると思われる場合は、それらを変更することができます。

+0

このモデルを説明できますか?私は考えていた: > そのようなもの:列名は文字列データのリストにマップされます モデルを説明してください? thnx – Larry

+0

他のマップを保持するマップです。 2Dマップ以外は2次元配列のようです。私はあなたがおそらくそれを試してみるべきであること以外に何を説明するか分からない。 –

+0

しかし、参照することを意味する最初のマップのキーと同じように、その意味を説明できますか? 2番目の地図のキーは何を指すのですか? 2番目の地図の値は何を指すのですか?私はそれを視覚化することができますが、あなたはそれを使用することを推奨している方法を知って興味があります.. thnxもう一度 – Larry

1

列名=>値でキーマップされたハッシュマップの配列は意味があります。あなたはこのようにそれを使用して、テーブルを読んだ後、私はここで

Map<String, Map<String,String>> table = new HashMap<String, Map<String,String>>(); 

のようなマップの何かのマップを行うだろう

1

Guavaライブラリには、[Table] [http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/collect/Table.html]インターフェースの2種類の実装があります:HashBasedTableTreeBasedTable。あなたは一見する必要があります。

2

私の意見では、このようなものは多くの場合コードの臭いです。表の行を表すBeanを作成し、いくつかの一般的な表のホラーの代わりにList<MyBean>を使用することを検討してください。

もちろん、これはあなたが前もってテーブルの外観を知っていることを前提としています。

関連する問題