阅读量:0
在Java中,如果您有两个不同的 List
对象,且它们包含的元素类型相同(比如都是自定义的对象),并且您希望从一个列表复制到另一个列表,您可以采用以下几种方法:
1. 使用 ArrayList
构造函数
如果您只是想复制列表中的对象引用而不是创建新的对象实例,可以使用 ArrayList
的构造函数来创建一个新的列表。
import java.util.ArrayList; import java.util.List; class Item { private String name; public Item(String name) { this.name = name; } public String getName() { return name; } } public class ListCopyExample { public static void main(String[] args) { List<Item> originalList = new ArrayList<>(); originalList.add(new Item("Item 1")); originalList.add(new Item("Item 2")); // 使用 ArrayList 构造函数创建副本 List<Item> copiedList = new ArrayList<>(originalList); System.out.println("Original List: " + originalList); System.out.println("Copied List: " + copiedList); } }
2. 使用 Stream
API
如果您想要复制列表中的对象并创建新的对象实例,可以使用Java 8的 Stream
API。
import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; class Item { private String name; public Item(String name) { this.name = name; } public String getName() { return name; } public Item copy() { return new Item(this.name); } } public class ListCopyExample { public static void main(String[] args) { List<Item> originalList = new ArrayList<>(); originalList.add(new Item("Item 1")); originalList.add(new Item("Item 2")); // 使用 Stream API 和 Item 的 copy 方法创建新的对象实例 List<Item> copiedList = originalList.stream() .map(Item::copy) .collect(Collectors.toList()); System.out.println("Original List: " + originalList); System.out.println("Copied List: " + copiedList); } }
3. 使用循环
您也可以使用传统的循环来复制列表中的对象。
import java.util.ArrayList; import java.util.List; class Item { private String name; public Item(String name) { this.name = name; } public String getName() { return name; } public Item copy() { return new Item(this.name); } } public class ListCopyExample { public static void main(String[] args) { List<Item> originalList = new ArrayList<>(); originalList.add(new Item("Item 1")); originalList.add(new Item("Item 2")); // 使用循环和 Item 的 copy 方法创建新的对象实例 List<Item> copiedList = new ArrayList<>(); for (Item item : originalList) { copiedList.add(item.copy()); } System.out.println("Original List: " + originalList); System.out.println("Copied List: " + copiedList); } }
在这些示例中,我们假设 Item
类有一个 copy()
方法来创建新实例。如果您的对象没有这样的方法,您可以直接在循环或流操作中创建新实例。