1つのArrayList(av)から別の1つ(copia)に各要素をコピーしようとしています。問題はそれらが参照によってコピーされていることです。元のコピーに変更を加えるたびにコピーも変更されます。もちろん、この動作は望ましくありません。このメソッドをどのように書くべきですか?ArrayListから別のものに要素をコピーするにはどうすればいいですか?
public void copiarArrayList(ArrayList<Articulo_Venta> copia, ArrayList<Articulo_Venta> av){
copia.clear();
for (int i = 0; i < av.size(); i++) {
copia.add(av.get(i));
}
}
Articulo_Ventaは、これらのフィールドがあります。
int codigo;
String nombre;
float cantidad;
PS:
copia = new ArrayList<Articulo_Venta>(av);
が、それはまだ元のArrayListを指し、その要素を持っている:私はまた次を試してみました。
それでした!これを行う必要はありませんが、オブジェクトの各フィールドを個別に新しいオブジェクトにコピーし、新しいArrayListに追加するのが解決策です。ありがとう、幸せな新年! –