在不通过引用的情况下将元素从一个ArrayList
复制到另一个,可以使用以下几种方法:
addAll()
方法addAll()
方法可以将一个集合中的所有元素添加到另一个集合中,从而实现复制。
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> sourceList = new ArrayList<>();
sourceList.add(1);
sourceList.add(2);
sourceList.add(3);
ArrayList<Integer> destinationList = new ArrayList<>();
destinationList.addAll(sourceList);
System.out.println("Source List: " + sourceList);
System.out.println("Destination List: " + destinationList);
}
}
通过循环遍历源列表,并将每个元素逐个添加到目标列表中。
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> sourceList = new ArrayList<>();
sourceList.add(1);
sourceList.add(2);
sourceList.add(3);
ArrayList<Integer> destinationList = new ArrayList<>();
for (Integer element : sourceList) {
destinationList.add(element);
}
System.out.println("Source List: " + sourceList);
System.out.println("Destination List: " + destinationList);
}
}
Collections.copy()
Collections.copy()
方法可以将一个列表的元素复制到另一个列表中,但需要注意目标列表的大小必须至少与源列表一样大。
import java.util.ArrayList;
import java.util.Collections;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> sourceList = new ArrayList<>();
sourceList.add(1);
sourceList.add(2);
sourceList.add(3);
ArrayList<Integer> destinationList = new ArrayList<>(Collections.nCopies(sourceList.size(), null));
Collections.copy(destinationList, sourceList);
System.out.println("Source List: " + sourceList);
System.out.println("Destination List: " + destinationList);
}
}
通过Stream API可以简洁地实现列表的复制。
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> sourceList = new ArrayList<>();
sourceList.add(1);
sourceList.add(2);
sourceList.add(3);
List<Integer> destinationList = sourceList.stream()
.collect(Collectors.toList());
System.out.println("Source List: " + sourceList);
System.out.println("Destination List: " + destinationList);
}
}
以上方法都可以实现从一个ArrayList
到另一个ArrayList
的复制,且不会通过引用共享数据。选择哪种方法取决于具体的需求和代码风格。
领取专属 10元无门槛券
手把手带您无忧上云