📅  最后修改于: 2023-12-03 15:31:33.381000             🧑  作者: Mango
在Java中,列表是一种常见的数据结构,经常需要复制一个已有的列表以便于修改,或者创建一个新的列表来存储一些数据。本文将介绍如何在Java中复制列表的方法。
可以使用 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]
除了使用 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 来复制列表。可以使用 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复制列表的方法,希望对大家有所帮助。