我有30个具有不同值的双数组,我想要一个循环来初始化所有这些数组。我的双数组看起来像这样,
double[] VALUES0 = new double[] { 27, 62, 125 };
double[] VALUES1 = new double[] { 33, 75, 150 };
double[] VALUES3 = new double[] { 44, 100, 200 };
double[] VALUES4 = new double[] { 50, 112, 225 };
double[] VALUES5 = new double[] { 55, 125, 250 };
我做了一个循环,将所有这些从VALUES0初始化为VALUES30,但它显示异常。
double[] VALUES[] = {};
int x = 27, y = 62, z = 125;
for (int i = 0; i < 30; i++) {
VALUES[i] = new double[] { x, y, z };
x += 6;
y += 13;
z += 25;
}
答案 0 :(得分:3)
java中的数组是固定大小,VALUES
大小零,因为您使用以下方法静态创建(忽略错误语法):
double[] VALUES[] = {};
最重要的是,您似乎想要创建一个二维数组。
java中的数组是对象,Java中的多维数组是数组引用的数组。您需要声明并实例化一个包含对double数组的引用的数组,并使用您需要的大小创建它(显然是30)。其语法是:
double[][] VALUES = new double[30][];
请注意,VALUES
现在包含30个设置为null
的元素。每个元素都可以保存对双数组的引用。您必须通过VALUES[i] = new double[someSize];
实例化和分配每个元素,或者像示例中那样使用静态初始化。
答案 1 :(得分:2)
试试这个:
public class HelloWorld{
public static void main(String []args){
double[] VALUES[] = new double[30][];
int x = 27, y = 62, z = 125;
for (int i = 0; i < 30; i++) {
VALUES[i] = new double[] { x, y, z };
x += 6;
y += 13;
z += 25;
}
}
}
说明: VALUES 是一个双数组,是Java中的数组数组。因此,在使用之前,您应该创建它 - 大小为30的双数组数组。
答案 2 :(得分:0)
尝试以下
double[] VALUES[] = new double[30][];
int x = 27, y = 62, z = 125;
for (int i = 0; i < 30; i++) {
VALUES[i] = new double[]{x, y, z};
x += 6;
y += 13;
z += 25;
}
答案 3 :(得分:0)
double [] [] VALUES = new double [30] [3];
for (int i = 0; i < 30; i++) {
VALUES[i] = new double[] { x, y, z };
x += 6;
y += 13;
z += 25;
}