Java 对象集合拷贝
在开发 Java 程序过程中,经常会涉及到对对象集合进行拷贝的需求。对象集合拷贝可以帮助我们实现对象的复制,以便进行独立操作,而不影响原始集合。本文将介绍 Java 中常用的对象集合拷贝方法,并提供相应的代码示例。
浅拷贝与深拷贝
在进行对象集合拷贝之前,我们需要了解两个概念:浅拷贝和深拷贝。
浅拷贝是指只拷贝对象本身,而不拷贝对象内部的引用类型属性。拷贝的新对象与原始对象共享引用类型属性,因此对其中一个对象的修改会影响到另一个对象。
深拷贝是指不仅拷贝对象本身,还要递归拷贝对象内部的引用类型属性。拷贝的新对象与原始对象完全独立,彼此之间的修改互不影响。
根据具体的需求,我们可以选择使用浅拷贝或深拷贝的方式进行对象集合的拷贝。
方法一:遍历拷贝
最简单的方法是使用循环遍历原始集合,逐个拷贝其中的对象,然后将拷贝后的对象添加到新的集合中。这种方式适用于对象集合中的对象是可序列化的情况。
下面是一个示例代码,演示了如何使用遍历拷贝的方式实现对象集合的拷贝:
上述代码中,我们创建了一个 Person
类,其中包含姓名和年龄两个属性。然后,我们创建了一个原始的对象集合 originalList
,并添加了两个 Person
对象。接着,我们使用循环遍历的方式将原始集合中的对象拷贝到新的集合 copyList
中,确保每个对象都是独立的。最后,我们输出原始集合和拷贝集合的内容,可以看到它们是相互独立的。
方法二:序列化与反序列化
如果对象集合中的对象不可序列化,我们可以使用序列化与反序列化的方式实现深拷贝。这种方式需要保证对象及其引用类型属性都实现了 Serializable
接口。
下面是一个示例代码,演示了如何使用序列化与反序列化的方式实现对象集合的深拷贝: