2012-04-08 17 views
12

データベースからレコードを格納する2次元配列を作成したいと思います。したがって、最初のタイプがintで、タイプがStringの2番目のタイプであるとしましょう(ここでは基本的に1つのレコードしか記述していません)。どうしたらいいですか?配列はそのための正しいデータ構造ですか?異なるタイプの2次元配列

答えて

5

アレイには1つのタイプしか含まれません。そのタイプがObjectである場合は、Objectとそのサブタイプのいずれかを格納できますが、ここで達成しようとしているようなものではありません。

データベース情報を格納する2D配列が記述されているようですが、配列の各要素は行の1つの列になります。このではありません。レコードの配列です。列データの配列です。

代わりに、レコードの1次元配列を格納します。配列の各要素はDB行全体への参照です。

+0

申し訳ありませんが、「配列の各要素はDB行全体を参照しています」という意味はわかりません。 DB行全体は、異なる型の2つの列、stringおよびintで構成されています。どのようにして1つの配列に格納できますか? – lunar

+1

データベースにアクセスするために何を使用していますか?テーブルの行を表すオブジェクトが必要です。その行には、その行の列データにアクセスするために呼び出せるメソッドが必要です。どのオブジェクトがデータベース行をラップしていても、配列に格納する必要があります。つまり、基本的にデータベーステーブルとは何か - 行の配列。 – jefflunt

11

私は次のことを確信していませんが、Map<Integer,String>をお探しの場合があります。またはMap<Integer,List<String>>。 【Listに見て、そしてHashMap]

Mapは[Integer]値[String又はList]の鍵の関連付けを可能にします。

Mapも、キーとその付加価値の高速検索が可能です。

(*)あなたはIntegerにつき1 String、より多くを添付したい、あるいはあなたがApacheのコモンズMultiMap

+1

これは、javaよりも重複したIntegerのレコードを許可しない場合です。 –

+0

@yogeshprajapataこれを可能にするために、GuavaやApacheの 'MultiMap'sを使うことができます。 – Jeffrey

+0

@ジェフリーしかし、ここであなたはGauvasの地図について話していないと言いました。 –

1

を使用することができますあなたは

HashMap<Integer, ArrayList<String>> 
6

を使用することができます場合は、同じことを行うことができますMap<Integer,List<String>>を使用する必要がありますこの助けを借りたもの

Object[][] o = new Object[10][10]; 

o[0][0] = 1; 
o[0][1] ="hello"; 

System.out.println(o[0][0]); 
System.out.println(o[0][1]); 
+0

ちょっとYogesh、私は同じことをしようとしていますo [0] [0] =文字列の配列とo [0] [1] =文字列。これは私にとってはうまくいくのではないでしょうか? – Tomer

+0

コードを記入してください。 –

0

String datの1つの列intデータのと別の列、これはあなたがやって考えることができるものである。

をあなたの最初の列は、すべての文字列データを含むことができます

String[][] words = new String[][]; 

2次元の文字列配列を宣言します。 2番目の列は数値データを持つことができますが、文字列の形式です。あなたはこの

words[index][index] = Integer.toString(Integer.parseInt(args)); 

が、私は正確にあなたが達成したいと考えていますかわからないんだけどやって持つInteger.toString()とInteger.parseInt()メソッドを使用したいかもしれませんが、あなたのニーズに合わせて、このスニペットを変更することを検討します