0

Aサイズが 5000 の配列と、B任意のサイズであるがより小さい配列がありAます。私の小さい方の配列は常に、私が失いたくない新しい値を生成するため、それらを配列に追加してA続行しますが、完全に残っていた場所から追加するのではなく、小さい方を大きい方にコピーしようとするたびにスタックします。以前の値を消去し、配列は配列Aと等しくなりBます。

offset = offset + B.length;
System.arraycopy(B, 0, A, offset, B.length);

このステートメントは、B毎回更新されるループ内にあります。

4

2 に答える 2

0

まず、このリンクを見て、lengthパラメータを説明するセクションを見てください: http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/System.html。あなたの問題は、渡される長さの引数にあると思います。

また、ステートメントoffset = offset + B.length;はループの後に来る必要があります。これは、配列を配置する必要があるA.length + B.lengthと想定されているように、変数 size を渡しているためです。B.lengthB

引数Aは宛先配列です。したがってA、 の長さになるように再宣言する必要がありoffsetます。

お役に立てれば。

于 2013-10-13T23:47:26.803 に答える