数组混淆双打/双打

时间:2011-09-11 03:48:03

标签: java arrays

我有两个初始化的数组:

    public static double[] arrayweight= new double[100];
    public static double[] arraypulse= new double[100];

他们充满了数据,例如23.0,25.8 ....等。

我需要将两个数组合并为一个double[]

数组

我选择使用以下不起作用的方法。有什么想法吗?

     ArrayList <Double> al = new ArrayList<Double>();

// The following methods do not work ;(     
     al.add((double[]) Global.arrayweight);
     al.add(new Double(Global.arraypulse));

6 个答案:

答案 0 :(得分:3)

您可以使用System.arraycopy来实现它。

double[] cArray= new double[Arrayweight.length + Arraypulse.length];
System.arraycopy(Arrayweight, 0, cArray, 0, Arrayweight.length);
System.arraycopy(Arraypulse, 0, cArray, Arrayweight.length, Arraypulse.length);

答案 1 :(得分:2)

简单方法怎么样:

double[] arr = new double[Arrayweight.length + Arraypulse.length];
int counter = 0;
for(double d1 : Arrayweight) arr[counter++] = d1;
for(double d2 : Arraypulse)  arr[counter++] = d2;

或(如果它们具有相同的长度):

int length = Arrayweight.length + Arraypulse.length;
double[] arr = new double[length];
for(int i = 0; i < length / 2; i++)
{
    arr[i] = Arrayweight[i];
    arr[i + length / 2] = Arraypulse[i];
}

答案 2 :(得分:1)

您可能会发现TDoubleArrayList有用。这是double []的包装。

TDoubleArrayList al = new TDoubleArrayList();
al.add(Arrayweight);
al.add(Arraypulse);

但是,当对象可能是更好的方法时,您的命名建议您使用数组。

class MyData {
    double weight, pulse;
}

List<MyData> al = new ArrayList<MyData>();
for(int i=0;i<100;i++) {
    MyData md = new MyData();
    md.weight = ...
    md.pulse = ...
    al.add(md);
}

答案 3 :(得分:0)

double[] both = (double[]) ArrayUtils.addAll(Arrayweight, Arraypulse);

答案 4 :(得分:0)

我最喜欢Nammari的答案,但以防万一你不使用Commons Lang 并希望坚持使用纯Java:

double[] result = Arrays.copyOf(Arrayweight, Arrayweight.length + Arraypulse.length);
System.arrayCopy(Arraypulse, 0, result, Arrayweight.length, Arraypulse.length);

答案 5 :(得分:-1)

add方法采用单个值,而不是数组。您可以将List的addAll和Arrays'asList方法组合在一起(如果您想坚持使用ArrayList):

al.addAll(Arrays.asList(Global.Arrayweight));
al.addAll(Arrays.asList(Global.Arraypulse));