次のコードを実行しても、何もコピーされません-何が間違っていますか?
また、これはあるアレイから別のアレイにデータをコピーするための最良/最も効率的な方法ですか?
public class A {
public static void main(String args[]) {
int a[] = { 1, 2, 3, 4, 5, 6 };
int b[] = new int[a.length];
for (int i = 0; i < a.length; i++) {
a[i] = b[i];
}
}
}
あなたの課題は後方にあると思います:
a[i] = b[i];
する必要があります:
b[i] = a[i];
多くの解決策があります。
_b = Arrays.copyOf(a, a.length);
_
新しい配列を割り当て、a
の要素をコピーして、新しい配列を返します。
または
_b = new int[a.length];
System.arraycopy(a, 0, b, 0, b.length);
_
これは、ソース配列の内容を、自分で割り当てた宛先配列にコピーします。
または
_b = a.clone();
_
Arrays.copyOf()
と非常によく似ています。 このスレッド を参照してください。
または、ループ内の割り当ての方向を逆にした場合は、投稿したもの。
Arrays.copyOf my friendを使用します。