java如何使用arraycopy()方法对数组进行复制?

TK 2020-09-21 10:11:14 java常见问答 7450

java使用arraycopy()方法对数组进行复制如何实现你知道吗?下面的文章要给大家讲到的就是这个方面的内容,一起来了解一下吧。

arraycopy()方法位于java.lang.System类当中,下面是语法形式:

System.arraycopy(dataType[] srcArray,int srcIndex,int destArray,int destIndex,int length)

srcArray表示原数组;srcIndex表示原数组中的起始索引;destArray表示目标数组;destIndex表示目标数组中的起始索引;length表示要复制的数组长度

使用arraycopy()方法方法复制数组的时候,length+srcIndex必须小于等于srcArray.length,与此同时,length+destIndex必须小于等于destArray.length。

注意一下,目标数组必须已经存在,并且,不会被重构,相当于替换目标数组中的部分元素。

示例:

假设,在scores数组当中,保存了8名学生的成绩信息,现在需要复制这个数组从第二个元素开始到结尾的所有元素到一个名称为 newScores的数组中,长度为12。

scores数组当中的元素在newScores数组中从第三个元素开始排列。

使用System.arraycopy()方法来完成替换数组元素功能的代码如下:

public class Test21
{
    public static void main(String[] args)
    {
        // 定义原数组,长度为8
        int scores[] = new int[]
        {
            100
            , 81
            , 68
            , 75
            , 91
            , 66
            , 75
            , 100
        };
        // 定义目标数组
        int newScores[] = new int[]
        {
            80
            , 82
            , 71
            , 92
            , 68
            , 71
            , 87
            , 88
            , 81
            , 79
            , 90
            , 77
        };
        System.out.println("原数组中的内容如下:");
        // 遍历原数组
        for (int i = 0; i < scores.length; i++)
        {
            System.out.print(scores[i] + "\t");
        }
        System.out.println("\n目标数组中的内容如下:");
        // 遍历目标数组
        for (int j = 0; j < newScores.length; j++)
        {
            System.out.print(newScores[j] + "\t");
        }
        System.arraycopy(scores, 0, newScores, 2, 8);
        // 复制原数组中的一部分到目标数组中
        System.out.println("\n替换元素后的目标数组内容如下:");
        // 循环遍历替换后的数组
        for (int k = 0; k < newScores.length; k++)
        {
            System.out.print(newScores[k] + "\t");
        }
    }
}

首先定义了一个包含有8个元素的scores数组,接着又定义了一个包含有12个元素的newScores 数组,然后使用for循环分别遍历这两个数组,输出数组中的元素。最后使用 System.arraycopy()方法将newScores数组中从第三个元素开始往后的8个元素替换为scores数组中的8个元素值。

运行结果:

原数组中的内容如下:
100    81    68    75    91    66    75    100   
目标数组中的内容如下:
80    82    71    92    68    71    87    88    81    79    90    77   
替换元素后的目标数组内容如下:
80    82    100    81    68    75    91    66    75    100    90    77

注意一下,在使用arraycopy()方法的时候要注意,这个方法的命名违背了Java的命名惯例,也就是第二个单词copy的首字母没有大写,但按惯例写法应该为arrayCopy。

更多Java复制拷贝数组方法以及java常见问题及解决方法请继续的关注奇Q工具网来进行了解吧。

推荐阅读:

Java复制拷贝数组方法详解,使用copyOf()方法

java如何使用CopyOfRange()方法对数组进行复制?

java如何使用使用clone()方法对数组进行复制?