我是Java编程的新手。在下面的例子中我无法理解为什么我不能通过这一行打印数组:
System.out.print(arr());
而不是所有的结果我得到了这个:'[D @ 60e1e567'
我做错了什么?
public class test {
public static void main(String[] args) {
System.out.print(arr());
}
public static double[] arr() {
double res;
int count=0;
double[] anArray = new double[100000000];
int k=0;
for (int j=2;j<101;j++){
for(int i=2; i<101;i++) {
res=Math.pow(j,i);
anArray[k]=res;
k++;
}
}
return anArray;
}
}
答案 0 :(得分:1)
你不能打印像
System.out.print(arr());
使用此:
System.out.print(Arrays.toString(arr()));
为了做到这一点,你还应该添加
import java.util.Arrays;
在文件的开头
你的阵列也很大。 100000000
双打可能不适合数组。您可能想要更改数据结构或限制大小。否则,您可能会遇到java.lang.OutOfMemoryError: Java heap space
答案 1 :(得分:1)
System.out.println(Arrays.toString(arr()));
返回指定数组内容的字符串表示形式。字符串表示由数组元素的列表组成,用方括号括起来(“[]”)。相邻元素由字符“,”(逗号后跟空格)分隔。通过String.valueOf(double)将元素转换为字符串。如果array为null,则返回“null”。
答案 2 :(得分:1)
你可以遍历数组来查看它的值,或者调用Collections方便方法,它大致做同样的事情:Arrays.toString(arr())
public static void main(String[] args) {
double[] d = arr();
for(double x : d) {
System.out.println(x);
}
}
答案 3 :(得分:1)
您无法直接打印数组。 你需要这样的东西:
double[] array=arr();
for(double x: array)
System.out.print(x+" ");
答案 4 :(得分:0)
你没有做错任何事。默认情况下,数组不实现好的toString()。打印人类可读输出的最佳方法是使用Arrays.asList(arr())
。
答案 5 :(得分:0)
您应该在那里打印每个元素,而不是打印整个数组:
double[] resultAry =arr();
for(int i=0; i< resultAry.length; i++ ){
System.out.println(resultAry[i]);
}