List集合的复制方式主要有以下几种:
使用构造器复制
创建一个新的List集合,并将原始List集合作为参数传递给它的构造器。例如,List<String> newList = new ArrayList<>(originalList)。这种方式会创建一个新的List对象,并将原始List的所有元素复制到新List中。
使用addAll方法复制
首先创建一个空的List集合,然后调用其addAll方法,将原始List集合作为参数传递。例如,List<String> newList = new ArrayList<>(); newList.addAll(originalList);。这样也会将原始List的所有元素复制到新List中。
以上两种复制方式都是浅拷贝(shallow copy),即如果List集合中存储的是对象引用,那么复制后的新List中的元素仍然是原始对象的引用,而不是对象的副本。因此,如果修改了原始对象,这些修改也会反映到复制后的List中。
如果要进行深拷贝(deep copy),即创建一个完全独立的新List,其中的元素是原始对象的副本而不是引用,那么需要自行实现深拷贝的逻辑。这通常涉及到遍历原始List,并为每个元素创建其深拷贝,然后将这些深拷