Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-Java多数组初始化_Java_Android_Initialization - Fatal编程技术网

Android-Java多数组初始化

Android-Java多数组初始化,java,android,initialization,Java,Android,Initialization,在循环之前声明和分配原语时,一切正常,以后可能会有所不同 //example double sum1, sum2, sum3, sum4; sum1 = sum2 = sum3 = sum4 = 0; //later each gets own value correctly 是否可以为阵列制作一行程序 //example double[][] compare, updated; // works as intended compare = updated = new double[SIZE]

在循环之前声明和分配原语时,一切正常,以后可能会有所不同

//example
double sum1, sum2, sum3, sum4;
sum1 = sum2 = sum3 = sum4 = 0;
//later each gets own value correctly
是否可以为阵列制作一行程序

//example
double[][] compare, updated; // works as intended
compare = updated = new double[SIZE][]; // makes compare=updated
第二行的问题是,它忽略了更新后的所有以下计算,并从比较中获取值。

如果“一行”指的是一条语句并写入一次新的双[],则可以这样做:

    double[] arr1, arr2;
    arr1 = (arr2 = new double[10]).clone(); // this is the line
    arr1[0] = 10;
    System.out.println(arr2[0]); // 0.0
但它不是很可读。如果使用更多阵列执行此操作,情况会变得更糟:

arr1 = (arr2 = (arr3 = new double[10]).clone()).clone();

我建议你还是用多行来做这件事。

< P>作为@清扫车的一种选择,考虑使用<代码>数组。请注意,该方法是类型安全的,而


但是,我会重申“清道夫做的”,这个代码真的很臭,你应该考虑用多行来做。正如Steve McConnell在中所说,(即使代码简单化)。这并不一定意味着减少代码行数,但更多的是让阅读您的代码的人一眼就能理解它的功能。

您可以使用原语,但不能使用
Object
<代码>对象使用引用,java中的数组是
对象
。是的,基本上我指的是单行语句。因此,对于多个大小相等的数组的初始化,没有其他方便的方法,对吗?@JayJayAbrams我认为没有。我没有使用
arrays.copyOf
,因为我试图尽可能地重新创建
a=b=c
的“感觉”,使数组变量更接近。但不管怎么说,答案很好,+1。
double[] a, b, c;
c = Arrays.copyOf((b = Arrays.copyOf((a = new double[10]), a.length)), b.length);