Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建新阵列_Java_Arrays - Fatal编程技术网

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,这里正在讨论这个问题。

不确定我是否理解这个问题:你是说你想要一个深度副本而不是浅层副本?这是浅层克隆(其中只有集合是新的)还是深度克隆(其中集合中的实际对象是副本如果您正在寻找深度副本,请尝试序列化深度副本。通常,我编写代码,因此不需要这样做。请检查这是否有助于您:获取自: