相关疑难解决方法(0)

制作一个数组的副本

我有一个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 arrays copy

333
推荐指数
8
解决办法
69万
查看次数

Java数组的克隆方法

当在数组上使用时,Java中的clone()方法究竟返回了什么?它是否返回一个包含从原始数据复制的数据的新数组?

例如:

int[] a = {1,2,3};
int[] b = a.clone();
Run Code Online (Sandbox Code Playgroud)

java arrays clone

58
推荐指数
1
解决办法
7万
查看次数

.clone()或Arrays.copyOf()?

为了减少可变性,我们应该使用

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)

java immutability

41
推荐指数
2
解决办法
4万
查看次数

标签 统计

java ×3

arrays ×2

clone ×1

copy ×1

immutability ×1