使 arraylist 等于另一个 arraylist java

make arraylist equal another arraylist java

我有 1d 临时数组列表和 2d 原始数组列表,我在循环期间更新了临时数组列表,在循环结束时我需要使原始数组列表等于临时数组列表的内容,如下所示:

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();

但不确定这些方法是否合适,因为所有这些方法都会给我列表的副本,而不是所有元素。因此,如果我更改复制列表中的其中一个元素,它也会在我的原始列表中更改。

更新 我提出这个解决方案有什么意见吗?

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]