我有一个a不断更新的数组.让我们说吧a = [1,2,3,4,5].我需要制作完全相同的副本a并调用它b.如果a要改变[6,7,8,9,10],b应该仍然是[1,2,3,4,5].做这个的最好方式是什么?我尝试了一个for循环:
for(int i=0; i<5; i++) {
b[i]=a[i]
}
Run Code Online (Sandbox Code Playgroud)
但这似乎不正常.请不要使用深层复制等高级术语,因为我不知道这意味着什么.
当在数组上使用时,Java中的clone()方法究竟返回了什么?它是否返回一个包含从原始数据复制的数据的新数组?
例如:
int[] a = {1,2,3};
int[] b = a.clone();
Run Code Online (Sandbox Code Playgroud) 为了减少可变性,我们应该使用
public void setValues(String[] newVals) {
this.vals = ( newVals == null ? null : newVals.clone() );
}
Run Code Online (Sandbox Code Playgroud)
要么
public void setValues(String[] newVals) {
this.vals = ( newVals == null ? null : Arrays.copyOf(newVals, newVals.length) );
}
Run Code Online (Sandbox Code Playgroud)