Arrays.CopyOf()和System.arraycopy ()
程序员文章站
2024-02-17 12:33:42
...
Arrays.copyOf():
Arrays 的copyOf()方法传回的数组是新的数组对象,改变传回数组中的元素值,不会影响原来的数组。copyOf 的第二个自变量指定要建立的新数组长度,如果新数组的长度超过原来数组的长度,则保留数组默认值。
例:
package extracurricular;
import java.util.Arrays;
public class CopyOf {
public static void main(String[] args) {
int[] arr1 = {1,2,3,4,5};
int[] arr2 = Arrays.copyOf(arr1, 5);
int[] arr3 = Arrays.copyOf(arr1, 10);
for(int i=0;i<arr2.length;i++){
System.out.print(arr2[i]+" ");
}
System.out.println();
for(int i=0;i<arr3.length;i++){
System.out.print(arr3[i]+" ");
}
}
}
结果:
1 2 3 4 5
1 2 3 4 5 0 0 0 0 0
System.arraycopy ()
package extracurricular;
import java.util.Arrays;
public class ArrayCopy {
public static void main(String[] args) {
char[] src = new
String("hello").toCharArray();
char[] dest = new
String("123456").toCharArray();
System.out.print("scr的源数组为:");
for(char c:src){
System.out.print(c);
}
System.out.print("\ntest目标数组为:");
for(char d:dest){
5
System.out.print(d);
}
int l1=src.length,l2=dest.length,l=l1+l2;
dest=Arrays.copyOf(dest,l);
System.arraycopy(src, 0, dest, l2, l1);
System.out.print("\n复制后数组为:");
for(int i=0;i<dest.length;i++){
System.out.print(dest[i]);
}
}
}
结果为:
scr的源数组为:hello
test目标数组为:123456
复制后数组为:123456hello