gpt4 book ai didi

java - 使用 array.clone() 比手动复制有什么优势

转载 作者:行者123 更新时间:2023-12-01 23:48:33 28 4
gpt4 key购买 nike

使用有什么缺点或优点

public Loteria( int[] liczby) {
this.liczby = liczby.clone();
}

而不是:

public Loteria( int[] liczby) {
this.liczby = new int[liczby.length];
for(int i = 0....)
this.liczby[i] = liczby[i];
}

最佳答案

这两种方法都会创建数组元素的浅副本,这意味着数组中的元素仍将相互引用。如果您想要复制,请坚持使用array.clone()

  • 更具可读性
  • 代码较少,使用标准 Java API。

深复制数组

Java 6+

this.liczby = Arrays.copyOf(liczby, liczby.length);

旧版本

System.arraycopy(liczby, 0, this.liczby, 0, liczby.length);

测试

Object[] original = { new Object(), null };
Object[] copy = new Object[2];
System.arraycopy(original, 0, copy, 0, original.length);
Object[] copy2 = Arrays.copyOf(original, original.length + 1);
copy2[1] = 2;
System.out.println(original[1]); // null
System.out.println(copy2[1]); // 2

关于java - 使用 array.clone() 比手动复制有什么优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16637979/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com