java中 两个对象list,属性一样,如何copy

avatar
作者
猴君
阅读量: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() 方法来创建新实例。如果您的对象没有这样的方法,您可以直接在循环或流操作中创建新实例。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!