从函数打印数组-java
我试图打印一些素数的数组,这些素数除以一个数字,这段代码的输出: [J@15db9742 如何打印通过函数获得的数组从函数打印数组-java,java,Java,我试图打印一些素数的数组,这些素数除以一个数字,这段代码的输出: [J@15db9742 如何打印通过函数获得的数组 public static long[] primes(int n) { int count = 0; long arr1[] = new long[n]; for (int i = 2; i < n; i++) { boolean prime = true; if (n % i == 0) f
public static long[] primes(int n) {
int count = 0;
long arr1[] = new long[n];
for (int i = 2; i < n; i++) {
boolean prime = true;
if (n % i == 0)
for (int j = 2; j < i && prime; j++) {
if (i % j == 0) prime = false;
}
if (prime && n % i == 0) {
arr1[count] = i;
System.out.println(arr1[count]);
count++;
}
}
long arr[] = new long[count];
for (int i = 0; i < arr.length; i++) {
arr[i] = arr1[i];
}
return arr;
}
数组是引用类型
您必须使用实用程序类来打印阵列:
对于多维数组:
顺便说一句
小建议您可以使用一些优化来代替循环:
更好地使用:
System.arraycopyarr1,0,arr,0,arr.length
数组是引用类型
您必须使用实用程序类来打印阵列:
对于多维数组:
顺便说一句
小建议您可以使用一些优化来代替循环:
更好地使用:
System.arraycopyarr1,0,arr,0,arr.length
System.out.printlnArrays.tostringar;@pbabcdefp answer是最好的。System.out.printlnArrays.tostringar;@pbabcdefp answer是最好的。或者,只返回arr1.clone。@LouisWasserman它可以工作,但多维数组克隆失败。如果这个问题涉及多维数组,我不会建议它。但这个问题似乎不可行需要对多维数组进行泛化。另外,System.arraycopy对多维数组也没有更好的效果。@LouisWasserman arr1和arr的长度不同,所以克隆无法工作。@pbabcdefp:啊,我明白了,很好。然后您需要arrays.copyOfarr1,count。或者,只需返回arr1.clone即可。@LouisWasserman它可以工作,但对multidime来说是这样的多维数组克隆失败。如果这个问题涉及多维数组,我不会建议它。但这个问题似乎不需要推广到多维数组。另外,System.arraycopy对多维数组也没有更好的效果。@LouisWasserman arr1和arr的长度不同,所以克隆不起作用。@pbabcdefp:啊,我明白了,接得好。然后你要数组。copyOfarr1,计数。
for (int i = 0; i < arr.length; i++) {
arr[i] = arr1[i];
}
for(long n: arr)
System.out.println(n);