java一维数组中将数组索引位置是0~4之间的元素复制到新的数组中并输出,求代码。

Python014

java一维数组中将数组索引位置是0~4之间的元素复制到新的数组中并输出,求代码。,第1张

java语言中数组的操作在真实的工作中也不是特别多一般主要使用的是list ,map这些集合来替代数组。实现复制一定数量的数组我简单的跟你提供两种方式吧。

第一种:原始一点就是直接创建两个数组,循环一个数组将数组1中的 下标为0-4的元素拷贝给数组

public static void main(String[] args) {

//创建一个有值的数组

int[] arry1 = {1,2,3,4,5,6}

//创建一个定长5的数组

int[] arry2 = new int[5]

System.out.println(arry2.length)

for (int i = 0i <5i++) {

arry2[i] = arry1[i]

//打印数组2的内容

System.out.print(arry2[i]+" ")

}

}

第二种:高级一些,借助于集合工具类java.util.Arrays实现更方便。

public static void main(String[] args) {

//创建一个有值的数组

int[] arry1 = {1,2,3,4,5,6}

//通过Arrays集合工具类拷贝

int[] arry2 = Arrays.copyOfRange(arry1, 0, 5)

System.out.println(arry2.length)

for (int i = 0i <arry2.lengthi++) {

System.out.print(arry2[i]+" ")

}

}

这个问题首先你需要看arraycopy方法的源码,

    public static native void arraycopy(Object src,  int  srcPos,

                                        Object dest, int destPos,

                                        int length)

从方法可以看到5个参数,这5个参数分别代表的意思如下:

参数    说明    

src    原数组    

srcPos    原数组的起始位置    

dest    目标数组    

destPos    目标数组的起始位置    

length    要复制的数组元素的数目

那么你的System.arraycopy(a, 1, c, 0, 3)这个表示的意思是 从a数据的下标1(即4)开始,复制3位(即4,6,8),复制到c数组,c数组从下标0(即1)开始替换3位,所以是4,6,8,7,9。如果System.arraycopy(a, 1, c, 0, 3)的3改为4,则会报数组越界异常,因为a数组从下标1往后只有3位,如果将System.arraycopy(a, 1, c, 0, 3)的0改为1,则结果为1,4,6,8,9,运行结果依次如下:

@param src the source array.

* @param srcPos starting position in the source array.

* @param dest the destination array.

* @param destPos starting position in the destination data.

* @param length the number of array elements to be copied.

System.arraycopy(src, srcPos, dest, destPos, length)