如何打印数组

时间:2013-02-15 13:03:01

标签: java arrays

我是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;         
    }
}

6 个答案:

答案 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]);
}