0

私は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;         
    }
}
4

6 に答える 6

1

このような配列を印刷することはできません

System.out.print(arr());

これを使って:

System.out.print(Arrays.toString(arr()));

これを行うには、追加する必要があります

import java.util.Arrays;

ファイルの先頭に

また、あなたの配列は大きすぎます。100000000doubleはおそらく配列に収まりません。データ構造を変更するか、サイズを制限することをお勧めします。そうしないと、java.lang.OutOfMemoryError: Java heap space

于 2013-02-15T13:04:54.007 に答える
1
System.out.println(Arrays.toString(arr()));

指定された配列の内容の文字列表現を返します。文字列表現は、角かっこ( "[]")で囲まれた配列の要素のリストで構成されます。隣接する要素は、文字「、」(コンマの後にスペースが続く)で区切られます。要素は、String.valueOf(double)によって文字列に変換されます。配列がnullの場合、「null」を返します。

于 2013-02-15T13:05:25.240 に答える
1

配列を反復処理してその値を確認するか、ほぼ同じことを行うCollectionsコンビニエンスメソッドを呼び出すことができます。Arrays.toString(arr())

public static void main(String[] args) {
    double[] d = arr();
    for(double x : d) {
        System.out.println(x);
    }
}
于 2013-02-15T13:06:09.207 に答える
1

配列を直接印刷することはできません。次のようなものが必要です:

double[] array=arr();

for(double x: array)
   System.out.print(x+" ");
于 2013-02-15T13:06:27.410 に答える
0

あなたは何も悪いことをしませんでした。配列はデフォルトで素晴らしいtoString()を実装していません。人間が読める形式の出力を印刷する最良の方法は、を使用することArrays.asList(arr())です。

于 2013-02-15T13:05:41.047 に答える
0

配列全体を印刷する代わりに、各要素をそこに印刷する必要があります。

double[] resultAry =arr();
for(int i=0; i< resultAry.length; i++ ){
System.out.println(resultAry[i]);
}
于 2013-02-15T13:20:40.260 に答える