2012-01-04 81 views
0

我有一个程序,创建值的列表。 (字符串,双精度,双精度,双精度)我想将这些值存储在数组,数组[array] [x] [4]中。我怎样才能做到这一点?动态2维阵列

回答

3

可以使用的Object小号数组的ArrayList

例如

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

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

更新

他们可以打印如下(因为我们知道数组元素是StringDouble S:

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

但我相信,这是一个很大更好地在这里使用一个类OOP

+1

你如何将打印的是这样的结果? – Mike 2012-01-04 23:54:09

+0

@Mike:查看更新。 – 2012-01-05 05:00:41

1

为了保持它的简单:

有4个字段创建Data Object类:

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

这个对象,然后存储在表:

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

如果你的类存在于同一个Java文件(所以它是在同一个包) - 你可以避免使用访问器,因为默认的包可见性访问。

+0

+1:Java是在类的非常好,没有必要使用对象数组,只是因为你会在不同的语言使用数组。 – unholysampler 2012-01-04 23:51:11

0

如果你创建什么类,并宣布在它的四个字段和类的对象存储到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); 
    } 
} 

会让我觉得更容易。