我一直在使用我的项目上的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