如何在代数表达式中创建使用其他数组的数组?

时间:2015-12-01 20:45:27

标签: java arrays

我正在尝试创建一个在代数表达式中使用其他数组的数组,但我最终得到的数组与放入的数组长度相同。 这是代码:

public static double[] calcGravity(double[] radius, double[] mass)
{
    double[] calcGravity = {};
    radius = new double[] {2439.7, 6051.9, 6378, 3402.5, 71492, 60270, 25562, 24774, 1195};
    mass = new double[] {3.30E23, 4.87E24, 5.97E24, 6.42E23, 1.90E27, 5.68E26, 8.68E25, 1.02E26, 1.27E22};
    for(int i = 0; i<radius.length; i ++)
    {
        calcGravity = new double[] {(((6.67E-11)*(mass [i]))/Math.pow(radius[i] * 1000, 2))};
        System.out.println(calcGravity);
    }
    System.out.println("calcGravity.length = " + calcGravity.length);
    return calcGravity;
}

最终发生的事情是calcGravity数组的索引值为0.因此,在for语句的每个循环之后,它会写入为calcGravity计算的最后一个值。我的主要问题是如何创建一个数组,在每个for循环之后保留calcGravity的每个值?

1 个答案:

答案 0 :(得分:1)

public static double[] calcGravity(double[] radius, double[] mass)
{
    double[] calcGravity;
    radius = new double[] {2439.7, 6051.9, 6378, 3402.5, 71492, 60270, 25562, 24774, 1195};
    mass = new double[] {3.30E23, 4.87E24, 5.97E24, 6.42E23, 1.90E27, 5.68E26, 8.68E25, 1.02E26, 1.27E22};
    calcGravity = new double[radius.length]; // Making the array size length
                                             // equal to the radius length.
    for(int i = 0; i < radius.length; i++)
    {
        calcGravity[i] = (((6.67E-11)*(mass [i]))/Math.pow(radius[i] * 1000, 2));
        System.out.println(calcGravity);
    }
    System.out.println("calcGravity.length = " + calcGravity.length);
    return calcGravity;
}

请注意,您必须确保radius.length == mass.length == calcGravity.length或循环不起作用。