我有两个初始化的数组:
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));
答案 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)