在输入问题之前,我知道除了原始类型之外,所有内容都由其参考号存储。我的 java 代码结构是这样的.....首先我有司机、预订和汽车类。它们之间的关系是司机是执行预订的司机,并且汽车被预订到存储在预订类中。
司机将负责预订。汽车有一些原始类型信息。多辆车可以存储到预订中(原始和ArrayList
)。但是一个驱动程序(ArrayList
)(来自驱动程序类)可以有多个保留。因此,当我允许用户查看驱动程序在他的保留中的内容时,我想深度复制其中的所有内容,ArrayList
因为除了原始类型之外的所有内容都是参考编号。
无论如何,我会复制一份数组列表,以便在驱动程序类中保留。
在我的驱动程序类中,这是一个访问器,当它ArrayList
传递ArrayList
.
public ArrayList<Reference> getReference() {
copiedRef = new ArrayList<Reference>();
//references have been declared above
for (int i = 0; i < references.size(); i++) {
copiedRef.add(references.get(i));
//getting each element in the arrayList one by one and push to a new ArrayList
}
return copiedRef;
}
这是在做深拷贝吗?如果我需要使用clone()
.
我将如何改进?(clone
做浅拷贝,我认为clone
对深拷贝没有帮助,否则我可能会误解其他帖子)。