2012-01-04 25 views
0

私は値のリストを作成するプログラムを持っています。 (String、double、double、double)これらの値を配列、ベクトル、または配列[x] [4]の配列に格納したいと思います。これどうやってするの?動的2次元配列

例えば:

答えて

3

あなたはObject SのアレイのArrayListを使用することができ

List<Object[]> list = new ArrayList<Object[]>(); 

list.add(new Object[]{"string", 2d, 1d, 0d}); 

更新

次のように彼らは、我々は、配列の要素がStringDouble秒であることを知っているので、(印刷することができます。

for(Object[] row : list) { 
    System.out.println(row[0] + " " + row[1] + " " + row[2] + " " + row[3]); 
} 

しかし、私はそれはたくさんだと信じていますここでOOPのクラスを使う方が良い。

+1

このような結果をどのように印刷しますか? – Mike

+0

@Mike:更新を参照してください。 –

1

簡潔にする:

4つのフィールドでデータオブジェクトクラスを作成します。

class MyDataObject { 
    String firstParameter; 
    double secondParameter; 
    double thirdParameter; 
    double fourthParameter; 
} 

を次にリストにこのオブジェクトを格納します。

List<MyDataObject> = new ArrayList<MyDataObject>(); 

クラスが同じJavaファイルに存在している(それは、同じパッケージ内にある場合) - デフォルトのパッケージの可視性アクセスのためにアクセサを使用することは避けることができます。

+0

+1:Javaはクラスで非常に優れています。異なる言語の配列を使用するという理由だけで、Object配列を使用する必要はありません。 – unholysampler

0

クラスを作成し、それらの4つのフィールドを宣言し、そのクラスのオブジェクトをArrayListに格納するとどうなるでしょうか?

final class DemoClass 
{ 
    String str=""; 
    double a; 
    double b; 
    double c; 

    public DemoClass(String str, double a, double b, double c) 
    { 
     this.str=str; 
     this.a=a; 
     this.b=b; 
     this.c=c; 
    } 

    public void doSomething() 
    { 
     //... 
    } 
} 

final public class Main 
{ 
    public static void main(String...args) 
    { 
     DemoClass dc=new DemoClass("SomeStrValue", 1, 2, 3); 
     List<DemoClass>list=new ArrayList<DemoClass>(); 
     list.add(dc); 
    } 
} 

私は考えるのが簡単になります。