使arraylist等于另一个arraylist java
我有1d临时arraylist和2d原始arraylist,我在循环期间更新了临时arraylist,在循环结束时,我需要使原始arraylist等于临时arraylist的内容,如下所示:使arraylist等于另一个arraylist java,java,eclipse,arraylist,copy,Java,Eclipse,Arraylist,Copy,我有1d临时arraylist和2d原始arraylist,我在循环期间更新了临时arraylist,在循环结束时,我需要使原始arraylist等于临时arraylist的内容,如下所示: while(!Front.get(front).isEmpty()){ Q.clear(); for(int i=0;i<Front.get(front).size();i++){ if(!Individual_Dominate.get(Fron
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++;
for(int i=0;i<Q.size();i++)
Front.get(front).add(Q.get(i));
}
我想这会管用的
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++;
for(int i=0;i<Q.size();i++)
Front.get(front).add(Q.get(i));
}
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> array = new ArrayList<Integer>();
ArrayList<Integer> array1 = new ArrayList<Integer>();
//supposedly you have ArrayList array = [1, 2, 3];
for(int i : array) {
array1.add(array.get(i));
}
System.out.print(array1);
// output will give you [1, 2, 3]
这会奏效的
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++;
for(int i=0;i<Q.size();i++)
Front.get(front).add(Q.get(i));
}
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> array = new ArrayList<Integer>();
ArrayList<Integer> array1 = new ArrayList<Integer>();
//supposedly you have ArrayList array = [1, 2, 3];
for(int i : array) {
array1.add(array.get(i));
}
System.out.print(array1);
// output will give you [1, 2, 3]
你怎么换双人间?它不会改变它。。。您正在处理拒绝使用objects/OOP的问题。不要把所有东西都扔进列表/集合中。