0
我有1d臨時arraylist和2d原始數組列表,我更新了臨時arraylist在一個循環中,並在循環結束時,我需要使原始arraylist等於臨時內容數組列表如下:讓arraylist等於另一個arraylist java
while(!Front.get(front).isEmpty()){
Q.clear();
for(int i=0;i<Front.get(front).size();i++){
if(!Individual_Dominate.get(Front.get(front).get(i)).isEmpty()){
for(int j=0;j<Individual_Dominate.get(Front.get(front).get(i)).size();j++){
Individual_Number[Individual_Dominate.get(Front.get(front).get(i)).get(j)]=Individual_Number[Individual_Dominate.get(Front.get(front).get(i)).get(j)]-1;
if(Individual_Number[Individual_Dominate.get(Front.get(front).get(i)).get(j)]==0){
Solutions_to_arrange[Individual_Dominate.get(Front.get(front).get(i)).get(j)][Input.General_Inputs.Num_objectives+Input.General_Inputs.Num_Of_Ppes]=front+1;
Q.add(Individual_Dominate.get(Front.get(front).get(i)).get(j));
}
}
}
}
front++;
Front.get(front)=Q // How to do this step
}
我知道有像
Front.get(front) = new ArrayList<Object>(Q);
或
Front.get(front) = (ArrayList<Object>)Q.clone();
方法
但不確定這些方法是否合適,因爲所有這些方法都會給我一個List的副本,而不是所有的元素。因此,如果我更改了我的複製列表中的某個元素,它也會在我的原始列表中更改。
更新 我提出這個解決方案的任何評論?
front++;
for(int i=0;i<Q.size();i++)
Front.get(front).add(Q.get(i));
}
你會怎樣改變一個'Double'? – immibis 2015-02-12 02:15:08
它不會改變它... [Java是通過值](http://javadude.com/articles/passbyvalue.htm) – 2015-02-12 02:23:12