复制数组的几种方法
package array;
import java.util.Arrays;
public class Array2 {
public static void main(String[] args) {
int sum=0;
int[] arr1 = { 1, 2, 3, 4, 5 };
// for循环遍历数组,加强for循环,顺手求和
for (int a : arr1) {
System.out.print(" " + a);
sum+=a;
}
System.out.println(sum);
// 复制数组到新的数组方法一
int[] arr2 = new int[10];
System.arraycopy(arr1, 0, arr2, 0, arr1.length);
for (int a : arr2) {
System.out.println(" " + a);
}
// 复制数组到新的数组方法二
int[] arr3 = new int[10];
for (int x = 0; x < arr1.length; x++) {
arr3[x] = arr1[x];
System.out.println(arr3[x]);
}
//复制数组到新数组还有个方法三,就是用java.util.Arrays类,其中有copyOf方法,是static类型,所以可以用类.方法调用
int[] copyOf = Arrays.copyOf(arr1, arr1.length);
for(int a:copyOf) {
System.out.print(a);
}
/*
* 复制数组时如果发生下标越界,可以try/catch,
* emmmmmm。。。。。。好像有点问题,数组依然赋值进入前三个了
* 那就条件判断吧
* 条件判断判断两点,一点是是否为空数组
* 二是数组长度比较
*/
int[] arr4 = new int[3];
/*
* try { for(int x=0;x<arr1.length;x++) { arr4[x]=arr1[x];
* System.out.println(arr4[x]); } } catch (Exception e) {
* System.out.println("复制数组的长度大于新数组的长度,复制数组失败"); }
*/
if (arr4 != null) {
if (arr1.length > arr4.length) {
System.out.println("复制数组的长度大于新数组的长度,复制数组失败");
} else {
for (int x = 0; x < arr1.length; x++) {
arr4[x] = arr1[x];
System.out.println(arr4[x]);
}
}
}
/*数组为空的情况下,无法取得数组长度
* int[] arr5 ;
System.out.println(arr5.length);*/
}
}