array.copyofrange 字符串,array.copyof方法

  array.copyofrange 字符串,array.copyof方法

  Arrays.copyOfRange的用法函数:实现数组的复制功能,将该数组复制到另一个数组中。

  参数:

  Original:第一个参数是要复制的数组对象。

  From:第二个参数是副本的起始位置(包括)。

  To:第三个参数是副本的结束位置(不包括)。有多种重载方法可以复制各种类型的数组。

  示例:

  导入Java . util . *;

  公共类leetcode {

  公共静态void main(String[] args) {

  int[] array={0,1,2,3,4,5,6,7,8 };

  int[]array 2=arrays . copyofrage(array,2,6);

  system . out . println(arrays . tostring(array 2));

  }

  }输出:

  [2, 3, 4, 5]

  请注意,右边界源代码解析不包括在内。

  copyOfRange()方法的源代码如下:

  用这种方法做了四件事:

  (1)计算新数组的长度。因为指定了起始索引和结束索引,所以可以计算新数组的长度。

  (2)创建一个数组,用来存储复制的元素。

  (3)调用System.arraycopy()方法复制数组。注意srcPos参数的值已经改为from,这是源数组的起始索引,复制的结果数组当然从索引为0的位置开始填充元素。

  (4)返回复制的结果数组。类似的方法:copyOf()

  /*

  public static T T[]copy of(T[]original,int newLength)

  方法描述:

  属于Arrays类的静态方法可以被类名直接调用,用于复制指定长度的数组。

  参数描述:

  T[] original generic指的是要传入的源数组,也就是要复制的数组,可以是String[],Integer[],等等。有几种重载方法。

  Intlength integer指的是要复制的长度和新数组的长度。

  1.如果newLength不合法,即小于0,则抛出NegativeArraySizeException异常。

  2.如果newLength小于源数组长度,则复制指定长度的数组元素。

  3.如果newLength大于源数组的长度,则新数组中超出源数组长度的元素是默认值。

  返回值描述:

  T[]返回一个泛型,引用复制成功的结果数组。

  */它还有多个重载方法,可以复制各种类型的数组:

  示例:

  公开课演示{

  公共静态void main(String[] args) {

  String[] originArr=new String[]{ 张三,李四,王五,刘钊 };

  string[]new arr=arrays . copyofrage(origin arr,1,3);

  printArr(new arr);

  }

  静态void printArr(String[] arr) {

  for (String s : arr) {

  system . out . print(s \ t );

  }

  system . out . println();

  }

  }

  /**

  *打印结果:

  *李吴

  */源代码分析copyOf()方法的源代码如下:

  这种方法完成了三件事:

  (1)创建一个数组,这个数组就是复制的结果数组。

  (2)调用System类的arraycopy()方法复制数组。注意,索引都是0,这意味着从第一个元素开始复制。

  (3)返回复制的数组。System.arraycopy()方法通过调用System.arraycopy()方法发现copyOf()和copyOfRange()方法的底层是实现的。

  System.arraycopy()方法说明:

  /*

  public static native void array copy(Object src,int srcPos,Object dest,int destPos,int length);

  方法描述:

  属于System类的一个静态方法(可以由类名直接调用)用于从指定的索引开始复制指定长度的数组。

  参数描述:

  对象src源数组,可以是任何类型

  int srcPos的源数组的起始索引是要复制的源数组的起始位置,结束位置由长度锁定。

  Object dest目标数组,即复制的结果数组

  int destPos目标数组的起始位置,一般从0开始,也可以是其他索引。

  要复制的元素的Int数

  注意事项:

  1.这个方法是native修改的,意思是底层用c或者c实现,不属于Java范畴。

  */System.arraycopy()方法的*/源代码:

  没有实现的方法体,使用了原生的修饰方法,也就是说底层是用C或者C实现的,不属于Java范畴。

  Ref:(97条消息)Java高级数组类和System.arraycopy()方法的copyOf()和copyOfRange()方法介绍_ Ermu程琳的博客

  版权归作者所有:原创作品来自博主mb5c9304c35413c,转载请联系作者授权,否则将追究法律责任。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: