2016-04-04 13 views
-1

配列を複製しようとしていますが、元の配列よりももう1つ空きスペースを増やしています。作成された新しい空間で、変数 "val"に設定します。私はこのコードをコンパイルしようとするとエラーが発生しますが、理由はわかりません。それは内の要素の上にコピーするの世話をするであろうから、元の配列が3固定配列に値を追加する

double[] array2 = new double[4]; 

    array2[3] = val; 

    return array2[3]; 
+1

エラーメッセージは何ですか?それはヌルポインタ例外か何か –

+0

「精度の損失が必要です:double [] found:double – inda1

+0

valとは何ですか?完全な有効なコードを表示してください – OldProgrammer

答えて

0

の保証の長さを持っているあなたは

private double method() { 
    double[] array2 = new double[4]; 
    double val = 10.0; 
    array2[3] = val; 
    return array2[3]; 
} 
+0

このようなメソッドのポイントは何でしょうか?基本的には、「return 10.0;」です。 –

+0

valは、示された実際には10.0ではありませんが、これの代わりに有効なダブルタイプになる可能性があります。 –

+1

'val'は関数の中で荒々しいハードコーディングの代わりに関数に渡されるべきです –

1

ように試みることができる私はここArrays.copyOfを使用することをお勧めし古いアレイ。

public static double[] addToEnd(double[] array1, double val) { 
    // copy over elements; you don't even need to think 
    // about whether the array has 3 elements or a 100 elements 
    int[] array2 = Arrays.copyOf(array1, array1.length + 1); 

    // val is copied to the last index 
    array2[array2.length - 1] = val; 

    return array2; 
} 
関連する問題