数组a{1,2,3}
数组b{}
在Java中如何把数组a里所以的元素放到空数组b中
int[] a = {1, 2, 3,4};
int[] b = {};
b = Arrays.copyOf(a, a.length);
直接copy
Arrays.copyOf(dataType[] xxx,int length);
xxx表示要进行复制的数组,length 表示复制后的新数组的长度
public class Test01 {
//直接等于就好了
public static void main(String[]args) {
int []arr= {1,2,3,4,5}; //原数组
int []arr1 =arr; //要复制的数组
System.out.println(Arrays.toString(arr1));
}
}
使用Arrays.copyOf(原始数组, 要复制的长度)进行复制。
public static void main(String[] args) {
int[] a = {1, 2, 3};
int[] b = {};
b = Arrays.copyOf(a, a.length);
a[2] = 10;
System.out.println(Arrays.toString(a));
System.out.println(Arrays.toString(b));
}
这样a和b就没什么联系了,修改a的值不会影响b
如果使用b=a;其实就是把a的地址给了b,也就是a和b指向相同的地址,修改a,b也会跟着修改,修改b,a也会跟着修改。
根据需求选择使用方案。
使用System.arraycopy方法,将a从索引位置0 copy 到b也是从索引位置为0开始接收,长度为a的数组长度
int[] a = new int[]{1, 2, 3};
int[] b=new int[a.length];
System.arraycopy(a,0,b,0,a.length);
public static void main(String[] args) {
int[] a = { 1, 2, 3 };
int[] b = new int[a.length];
for (int i = 0; i < a.length; i++) {
b[i] = a[i];
}
System.out.println(Arrays.toString(a));
}