私はJavaで、配列を関数に渡すと元の配列を変更することに気付きました。私は再帰を使用するバックトラッキングメソッドを実装しようとしており、渡された配列の内容をコピーする独自の配列を持つ各呼び出しを必要とします。配列やarraylistsを効率的にコピーするには?
たとえば、元の配列があり、関数を呼び出すループ。各呼び出しに元の配列のすべてを含む配列を持たせたいが、変更するものは元の配列を変更するのではなく、それ自体の中にとどまる。これは可能ですか?
解決策がある場合は、arraylistsも可能でしょうか?
内容が同じオブジェクトを参照するように配列をコピーするか、配列の内部にオブジェクトを実際にコピーするかどうかはわかりません。あなたが前者を意味するなら、チャンドラの答えは正しいものです。しかし、実際に配列自体のオブジェクトを変更しないようにしたい場合は、クローンを避けることを強くお勧めします。代わりに、オブジェクトを不変にする必要があるので、変更によって新しいインスタンスが作成されます。 –
check http://stackoverflow.com/questions/2589741/how-to-effectively-copy-an-array-in-java –