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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。