配列を複製しようとしていますが、元の配列よりももう1つ空きスペースを増やしています。作成された新しい空間で、変数 "val"に設定します。私はこのコードをコンパイルしようとするとエラーが発生しますが、理由はわかりません。それは内の要素の上にコピーするの世話をするであろうから、元の配列が3固定配列に値を追加する
double[] array2 = new double[4];
array2[3] = val;
return array2[3];
配列を複製しようとしていますが、元の配列よりももう1つ空きスペースを増やしています。作成された新しい空間で、変数 "val"に設定します。私はこのコードをコンパイルしようとするとエラーが発生しますが、理由はわかりません。それは内の要素の上にコピーするの世話をするであろうから、元の配列が3固定配列に値を追加する
double[] array2 = new double[4];
array2[3] = val;
return array2[3];
の保証の長さを持っているあなたは
private double method() {
double[] array2 = new double[4];
double val = 10.0;
array2[3] = val;
return array2[3];
}
このようなメソッドのポイントは何でしょうか?基本的には、「return 10.0;」です。 –
valは、示された実際には10.0ではありませんが、これの代わりに有効なダブルタイプになる可能性があります。 –
'val'は関数の中で荒々しいハードコーディングの代わりに関数に渡されるべきです –
ように試みることができる私はここ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;
}
エラーメッセージは何ですか?それはヌルポインタ例外か何か –
「精度の損失が必要です:double [] found:double – inda1
valとは何ですか?完全な有効なコードを表示してください – OldProgrammer