[英]deep copy of ArrayList()
我有一个ArrayList,我需要一个值的副本,而不是引用。
到目前为止我尝试过的:
ArrayList<AudioInputStream> copy = new ArrayList<AudioInputStream>(original);
Collections.copy(copy, original);
我想这些副本称为浅拷贝,因为AudioInputStream
是一个Object
。 我读到一个简单的深层复制方法是使用构造函数,但我无法弄清楚如何在我的情况下执行它。
当我们使用构造函数谈论深层复制时,我们必须创建这样的东西:
public class Foo {
public Foo(Foo aFoo) {
//your deep copy here
}
}
然后,很容易遍历列表并创建新对象。
List<Foo> newList = /* whatever */;
for(Foo foo : fooLists ) {
newList.add(new Foo(foo));
}
但是, AudioInputStream
不允许这样做,而且,克隆InputStream
的事实非常奇怪。
你能从同一个源创建另一个InputStream
吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.