📜  java 复制列表 - Java (1)

📅  最后修改于: 2023-12-03 15:31:33.381000             🧑  作者: Mango

Java复制列表

在Java中,列表是一种常见的数据结构,经常需要复制一个已有的列表以便于修改,或者创建一个新的列表来存储一些数据。本文将介绍如何在Java中复制列表的方法。

方法一:使用ArrayList的构造函数

可以使用 ArrayList 的构造函数 ArrayList(Collection<? extends E> c) 来创建一个新的 ArrayList 并将现有列表中的元素添加到新的列表中。

List<String> originalList = new ArrayList<>();
originalList.add("a");
originalList.add("b");
originalList.add("c");

List<String> copiedList = new ArrayList<>(originalList);

System.out.println(originalList); // [a, b, c]
System.out.println(copiedList); // [a, b, c]
方法二:使用Collections的copy方法

除了使用 ArrayList 的构造函数外,还可以使用 Collections 类的静态方法 copy(List<? super T> dest, List<? extends T> src)。此方法将现有列表中的元素复制到另一个列表中。

List<Integer> originalList = new ArrayList<>();
originalList.add(1);
originalList.add(2);
originalList.add(3);

List<Integer> copiedList = new ArrayList<>(originalList.size());
Collections.copy(copiedList, originalList);

System.out.println(originalList); // [1, 2, 3]
System.out.println(copiedList); // [1, 2, 3]

需要注意的是,使用 Collections 的 copy 方法时,目标列表必须和源列表具有相同的大小。

方法三:使用Java 8的Stream API

在Java 8中,可以使用 Stream API 来复制列表。可以使用 stream() 方法从原始列表中获取一个流,然后使用 collect(Collectors.toList()) 将其转换为新列表。

List<String> originalList = new ArrayList<>();
originalList.add("a");
originalList.add("b");
originalList.add("c");

List<String> copiedList = originalList.stream().collect(Collectors.toList());

System.out.println(originalList); // [a, b, c]
System.out.println(copiedList); // [a, b ,c]
总结

复制列表在Java中非常常见,常见的选择有使用ArrayList的构造函数,使用Collections的copy方法以及使用Java 8的Stream API。选择哪种方法取决于应用程序特定的需求和偏好。

以上就是本文讲述的Java复制列表的方法,希望对大家有所帮助。