我一直在使用我的項目上的ArrayLists,我需要創建一個默認的ArrayList,所以我可以重置原來的一個我想要的。所以,我複製原始的ArrayList來創建默認的ArrayList。但是,每當我修改原始內容時,它也會更改默認的內容。我怎樣才能使複製「靜態」和不變?如何複製不受原始ArrayList影響的ArrayList更改?
這裏是我的代碼(這是葡萄牙語)
private ArrayList<Compartimento> listaCompartimentos;
private ArrayList<Compartimento> listaCompartimentosDEFAULT;
public Simulador() {
this.listaCompartimentos = new ArrayList<>();
this.listaCompartimentosDEFAULT=new ArrayList<>();
}
//Copy of the array
public void gravarListaDefault(){
this.listaCompartimentosDEFAULT=(ArrayList<Compartimento>)listaCompartimentos.clone();
}
注:我不知道,如果它可以是它背後的原因,但該ArrayList listaCompartimentos有listaEquipamentos。對於每個「Compartimento」,都有一個ArrayList「listaEquipamentos」。
我不認爲你應該在那裏使用克隆。不是Java專家,但我認爲一個簡單的任務是可行的。 – Gjordis
@Gjordis你是對的; )(關於克隆) –
@Gjordis簡單分配在Java中不起作用。 – johnchen902