背景:
最初は、新しいページに入るときにコレクションをコピーし、その後の操作のために保存したかったので、単にリスト A=リスト B と書きました。後で、B を操作すると、それに応じて A のデータも変更されることがわかりました。
(ビデオチュートリアルの推奨: java コース)
クエリを通じて、「=」を直接使用することは、Java で同じ内容を指す配列と同等であることがわかりました。同じアドレス、つまり浅いコピーの後、A と B は同じアドレスを指します。その結果、B を変更すると A も変更されます。B を変更すると、B が指すアドレスの内容が変更されることになります。A も同じアドレスを指すため、A と B は一緒に変更されます。独立した配列をコピーするには、次のメソッドを使用できます:
public class GoodsBean extends HttpResult implements Cloneable{ @Override protected Object clone() throws CloneNotSupportedException { GoodsBean o = null; try { o = (GoodsBean) super.clone(); } catch (CloneNotSupportedException e) { e.printStackTrace(); } return o; } public ArrayList<GoodsBean> deep_clone(ArrayList<GoodsBean> cells, ArrayList<GoodsBean> clone_cells){ for(GoodsBean c : cells){ try { clone_cells.add((GoodsBean) c.clone()); } catch (CloneNotSupportedException e) { e.printStackTrace(); } } return clone_cells; } }
関連する推奨事項: Java 入門チュートリアル
以上がJavaはリストのコピーを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。