[英]Double array initialization in Java
我正在阅读一本关于Java<\/a>的书,遇到了一个示例,其中 double 类型的数组以我以前从未见过的方式初始化。 它是什么类型的初始化,它还能在哪里使用?
double m[][]={
{0*0,1*0,2*0,3*0},
{0*1,1*1,2*1,3*1},
{0*2,1*2,2*2,3*2},
{0*3,1*3,2*3,3*3}
};
这是数组初始化程序语法 ,它只能在声明数组类型的变量时在右侧使用。 例:
int[] x = {1,2,3,4};
String y = {"a","b","c"};
如果您不在变量声明的RHS上,请使用数组构造函数:
int[] x;
x = new int[]{1,2,3,4};
String y;
y = new String[]{"a","b","c"};
这些声明具有完全相同的效果:使用指定的内容分配和构造新数组。
在您的情况下,以编程方式指定表可能实际上更清晰(重复性更低,但更简洁一点):
double[][] m = new double[4][4];
for(int i=0; i<4; i++) {
for(int j=0; j<4; j++) {
m[i][j] = i*j;
}
}
您可以通过在右侧的花括号中写入实际值来初始化数组,如:
String[] strArr = { "one", "two", "three"};
int[] numArr = { 1, 2, 3};
以相同的方式,二维数组或数组数组将数组作为值保存 ,因此:
String strArrayOfArrays = { {"a", "b", "c"}, {"one", "two", "three"} };
您的示例正是如此
double m[][] = {
{0*0,1*0,2*0,3*0},
{0*1,1*1,2*1,3*1},
{0*2,1*2,2*2,3*2},
{0*3,1*3,2*3,3*3}
};
而且数字的乘法也将被执行,并且它与以下相同:
double m[][] = { {0, 0, 0, 0}, {0, 1, 2, 3}, {0, 2, 4, 6}, {0, 3, 6, 9} };
double m[][]
声明一个数组数组,所以称为多维数组。
m[0]
指向大小为4的数组,包含0 * 0,1 * 0,2 * 0,3 * 0。 简单的数学表明这些值实际上是0,0,0,0。
第二行也是四个大小的数组,包含0,1,2,3。
等等...
我想这本书中的多种格式是显示0 * 0是第0列0,0 * 1是第0列第1列,依此类推。
如果您可以接受双重对象,则此帖子很有用: 在一行中初始化ArrayList
List<Double> y = Arrays.asList(null, 1.0, 2.0);
Double x = y.get(1);
它是创建和初始化Java数组的快捷语法。
根据我的经验,当我想要数组中的固定值时,我会进行这种初始化。 我在类中声明它,但在onCreate方法之外,因为它不会让我在onCreate中执行它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.