有什么区别
System.arraycopy()
,clone()
Arrays.copyOf()
arraynew = arrayold
?Joã*_*lva 24
System.arraycopy()
使用JNI(Java Native Interface)来复制一个数组(或部分数组),所以它非常快,你可以在这里确认
一下 ;clone()
创建一个新的具有相同特征的老阵列,即,相同的大小,相同的类型,并且阵列相同的内容.请参阅此处了解一些实际操作示例clone
;manual copying
是,手动复制.没有太多的话要说,该方法相同,只是很多人都认为它是最高性能.arraynew = arrayold
不复制数组; 它只是指向 arraynew
内存地址,arrayold
或者换句话说,你只是指定一个旧数组的引用.Joa*_*uer 13
System.arraycopy()
将数据从一个现有数组复制到另一个数组,并根据参数仅复制其中的一部分.clone()
分配一个与原始类型和大小相同的新数组,并确保它具有相同的内容.System.arraycopy()
,但代码更多,因此错误的来源更多arraynew = arrayold
仅将对数组的引用复制到新变量,并且不会影响数组本身还有一个有用的选择:
Arrays.copyOf()
可用于创建具有不同大小的另一个数组的副本.这意味着新阵列可以比原始阵列更大或更大,并且通用大小的内容将是源的内容.甚至还有一个版本可以创建不同类型的数组,以及一个可以指定要复制(Array.copyOfRange()
)的元素范围的版本.
请注意,所有这些方法都会生成浅表副本.这意味着只复制存储在数组中的引用,并且不会复制引用的对象.
归档时间: |
|
查看次数: |
12644 次 |
最近记录: |