下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

你知道怎么在Java中复制数组吗?

作者:课课家教育     来源: http://www.kokojia.com点击数:2238发布时间: 2016-08-03 17:34:55

标签: Java数组复制clone方法copyOf方法copyOfRange方法

大神带你学编程,欢迎选课

  当你在java中需要用一个数组来存储另一个数组中的内容的时候,如果你用循环什么的进行转移就会显得很麻烦。所以Java中提供了四种复制数组的方法,而不需要将数组的元素逐一的转移。这四种方法分别是Arrays类中的copyOf(),和copyOfRange()、System类中的arrycopy()方法和Object类中的clone()。下面我们来看看它们怎么使用。

  copyOf()

   Arrays类的copyOf 方法格式如下:

   Arrays.copOf(dataType[] Arrayname,int length);

   其中Arrayname 代表的是要进行复制的数组,length代表的是复制后新数组的长度。使用这个方法复制数组,默认的是从数组第一个元素开始复制。而length是目标数组的长度,如果length大于srcArray数组的长度,那么目标数组会采用默认值进行填充。如果length小于srcArray数组的长度,那么复制的时候只复制到length个元素为止。

你知道怎么在Java中复制数组吗?_Java数组复制_clone方法_copyOf方法_copyOfRange方法_课课家

   前面已经说了,copyOf()方法是复制数组到指定的长度,因为在上面的代码中srcarray数组的length为5,但是新数组的length为8.所以我们可以看到的是系统采用了默认值对空了的3个进行填充。因为names数组的数据类型为String ,所以默认填充的是null。

       我们可以看到输出的结果是:一  二  三  四  五 null  null  null

   在这里要说一下的是:使用Arrys.copyOf(names,8)复制数组之后返回的类型为Object[]类型。所以要强制转换为String[]类型。

  copyOfRange()

   copyOfRange的语法形式如下:

   Arrays.copOfRange(dataType[] Arrayname,int start,int end);

   其中,Arrayname还是表示需要复制的数组,start代表的是从数组的哪一个起始索引开始,end表示的是在哪一个索引结束。要注意的是:start必须在0-srcArray.length之中,而且end必须大于start。并且end可以大于srcArray.length,大于的部分系统会采用默认值进行填充。

   下面我们看看怎么运用:

copyOfRange方法的使用实例

       输出的结果:二 三 四 五 null null 

   在该程序中,原数组中有5个元素,在使用Arrays.copyOfRange()的方法之后将原数组中索引1-6的元素复制到newname数组中。由于end大于原数组的长度,所以后面的部分使用null填充。至于为什么是用null,在上文有提到过。

  arraycopy()

   System类中arraycopy()的语法格式如下:

   System.arraycopy(srcArray,int srcstart,int destarray,int deststart,int length)

   其中,srcArray表示的是要复制的数组,srcstart表示的是srcArray中起始的索引,destArray表示的是目标数组,deststart表示的是目标数组的起始索引,length表示的是复制数组的长度。注意,在使用这个方法的时候,length+srcstart必须小于srcArray.length,同时length+deststart必须小于等于destArry.length。

   下面我们看看怎么运用:

System类中的arraycopy使用

       输出的结果:0 0 2 3 4 5 0 0

   注意,这个方法的命名违背了Java命名的规则,因为在Java中,第二个单词的首字母是需要大写的。所以在使用此方法的时候要注意方法名的书写。

  clone()

   Java中,数组也是一个对象,并且是以Object类的实例,所以可以使用Object类中的clone()方法复制数组,它的语法形式如下:

   array_name.clone()

   下面看看怎么运用:

Object类中的clone()方法实例

   因为clone()方法返回的是Object类型的数据,所以要强制转换类型为int。

      上面是Java中的四种复制数组的方法,并对每个方法都加入了代码帮助大家理解。这个复制数组的知识是很简单的,希望能对在Java中觉得数组复制很麻烦的朋友有所帮助。

赞(13)
踩(4)
分享到:
上一篇:IDEA加密算法
华为认证网络工程师 HCIE直播课视频教程