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

TK 2020-09-21 10:12:18 java常见问答 7556

你知道java复制(拷贝)数组的方法都有哪些吗?下面要给大家讲到的就是使用copyOf()方法来实现的内容,一起来了解一下吧。

在java当中,实现数组复制分别有下面的四种方法:Arrays类的copyOf()方法、Arrays类的copyOfRange()方法、System类的arraycopy()方法、Object类的clone()方法;

下面的话就来给大家讲一下使用copyOf()方法。

使用copyOf()方法对数组进行复制

下面是Arrays类的copyOf()方法的语法格式:

Arrays.copyOf(dataType[] srcArray,int length);

在这当中,srcArray表示要进行复制的数组,length表示复制后的新数组长度

使用copyOf()方法对数组进行复制的时候,默认从原数组的第一个元素(索引值为0)开始复制,目标数组的长度将为length。

假如,length大于srcArray.length,那么,目标数组中采用默认值填充;假如,length小于srcArray.length,那么,复制到第length个元素(索引值为length-1)即止。

注意一下了,假如,目标数组已经是存在的了,那么,将会被重构。

下面的话就来看一个简单的示例吧!

假设,一个数组当中保存了5个成绩,现在需要在一个新数组中保存这5个成绩,同时留3个空余的元素供后期开发使用。

使用Arrays类的CopyOf()方法完成数组复制:

import java.util.Arrays;
public class Test19
{
    public static void main(String[] args)
    {
        // 定义长度为 5 的数组
        int scores[] = new int[]
        {
            57
            , 81
            , 68
            , 75
            , 91
        };
        // 输出原数组
        System.out.println("原数组内容如下:");
        // 循环遍历原数组
        for (int i = 0; i < scores.length; i++)
        {
            // 将数组元素输出
            System.out.print(scores[i] + "\t");
        }
        // 定义一个新的数组,将 scores 数组中的 5 个元素复制过来
        // 同时留 3 个内存空间供以后开发使用
        int[] newScores = (int[]) Arrays.copyOf(scores, 8);
        System.out.println("\n复制的新数组内容如下:");
        // 循环遍历复制后的新数组
        for (int j = 0; j < newScores.length; j++)
        {
            // 将新数组的元素输出
            System.out.print(newScores[j] + "\t");
        }
    }
}

因为原数组scores的长度为5,而要复制的新数组newScores的长度为8,所以的话,在将原数组中的5个元素复制完之后,会采用默认值填充剩余3个元素的内容。

由于,原数组scores的数据类型为int,而使用Arrays.copyOf(scores,8) 方法复制数组之后返回的是Object[] 类型,所以的话就需要将Object[]数据类型强制转换为int[]类型,与此同时,也正因为scores的数据类型为int,所以的话默认值为 0。

结果:

原数组内容如下:
57    81    68    75    91   
复制的新数组内容如下:
57    81    68    75    91    0    0    0

以上的内容就为你介绍到这里了,更多的Java复制数组方法请继续关注奇Q工具网来进行了解吧,更多的java常见问题及解决方法可以为你分享解答。

推荐阅读:

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

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

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