java中 两个对象list,属性一样,如何copy
创始人
2024-11-22 13:08:19

在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 originalList = new ArrayList<>();         originalList.add(new Item("Item 1"));         originalList.add(new Item("Item 2"));          // 使用 ArrayList 构造函数创建副本         List 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 originalList = new ArrayList<>();         originalList.add(new Item("Item 1"));         originalList.add(new Item("Item 2"));          // 使用 Stream API 和 Item 的 copy 方法创建新的对象实例         List 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 originalList = new ArrayList<>();         originalList.add(new Item("Item 1"));         originalList.add(new Item("Item 2"));          // 使用循环和 Item 的 copy 方法创建新的对象实例         List 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() 方法来创建新实例。如果您的对象没有这样的方法,您可以直接在循环或流操作中创建新实例。

相关内容

热门资讯

下一个航天亿级市场,藏在你手机... 商业航天的第一个大众市场来了。 过去很多年,商业航天始终面临一个问题:技术很热,但离普通人太远。 火...
【科普小知识】太空金属3D打印... 近日,中国科学院力学研究所联合中国科学院微小卫星创新研究院,利用轻舟试验飞船,成功完成太空金属增材制...
从没人做到抢着做,71台概念车... 刚结束的2026年北京车展,有一个令人震撼的数字,概念车多达71台,数量创下近几届A级车展之最。从自...
原创 1... 在以前,一提到激光雷达,很多人的第一反应就是“高端”、“昂贵”,仿佛是20万甚至30万以上高端车型的...
解散xAI ,马斯克和Anth... 文 | 字母AI 就在刚才,马斯克在X平台上发布了一条简短的声明:xAI从此以后不再是独立的公司,...