Java 创建新阵列
问题很简单。创建新的(新引用)数组有什么简单快速的方法吗?还是必须手动完成 例如:Java 创建新阵列,java,arrays,Java,Arrays,问题很简单。创建新的(新引用)数组有什么简单快速的方法吗?还是必须手动完成 例如: Collection<A> c = new ArrayList<A>(); c.add(new A()); c.add(new A()); c.add(new A()); A[] a1 = c.toArray(new A[0]); System.out.println("a1: " + Arrays.toString(a1)); System.out.println("c: " + c)
Collection<A> c = new ArrayList<A>();
c.add(new A());
c.add(new A());
c.add(new A());
A[] a1 = c.toArray(new A[0]);
System.out.println("a1: " + Arrays.toString(a1));
System.out.println("c: " + c);
A[] a2 = Arrays.copyOf(a1, a1.length);
System.out.println("a2: " + Arrays.toString(a2));
收藏。现在我看到这个问题是重复的。如果您想创建数组的深度副本(意思是:使用新创建的对其每个元素的引用),有几个备选方案,包括:
- 序列化/反序列化数组(请参阅Apache的
SerializationUtils
)
- 手动复制每个元素(以及该元素的属性,递归)
- 显式使用反射
- 使用复制构造函数
。。。等等看看stack overflow,这里正在讨论这个问题。不确定我是否理解这个问题:你是说你想要一个深度副本而不是浅层副本?这是浅层克隆(其中只有集合是新的)还是深度克隆(其中集合中的实际对象是副本如果您正在寻找深度副本,请尝试序列化深度副本。通常,我编写代码,因此不需要这样做。请检查这是否有助于您:获取自: