排名好的徐州网站建设,网站建设销售招聘,软件开发教程自学教程,免费做图网站Arrays.copyOf
详解
copyOf是Arrays类下面的一个方法,用于拷贝各种数组
以整型数组为例#xff1a;int [ ] copyOf(int [ ]array,int newLength);第一个参数是想要拷贝到数组#xff0c;第二个参数是新拷贝得到的数组的大小#xff08;不一定非得和原始数组大小一样…Arrays.copyOf
详解
copyOf是Arrays类下面的一个方法,用于拷贝各种数组
以整型数组为例int [ ] copyOf(int [ ]array,int newLength);第一个参数是想要拷贝到数组第二个参数是新拷贝得到的数组的大小不一定非得和原始数组大小一样 俩次打印的结果如下 这说明拷贝后array1与array2指向了不同的对象只不过其中的数一样所以通过array2改变数组的值不会影响array1.
拓展
上面说了array2的大小不一定与array1的相同所以Arrays.copyOf也可以实现扩容 扩容后剩余位置就初始化为0。
那如果变成1/2长呢也可以结果如下 System.arraycopy
实际上copyOf的内部就是调用arraycopy实现的
public static native void arraycopy(src,int srcPos,dest,int destPos,int length)
native说明是本地方法本地方法的特点是1.它的底层是由c/c代码实现的所以我们看不到它的实现方法 2.速度快。
src是从哪里拷srcPos是从哪个位置开始拷(即下标)dest是考到哪里length是要拷贝多长 那是null
由此可见array2中剩余的空间就是系统默认值
拓展
根据这个方法的参数就可以知道System.arraycopy可以指定拷贝区间 Arrays.copyOfRange
由arraycopy可以指定拷贝区间又想到了Arrays.copyOfRange它也可以。还是以整型数组举例
int [ ] copyOfRange(int [ ]array,int from,int to);
有返回值所以要接收 这是从下标为1拷贝到下标为3结果为 这是因为在Java中的from to一般为左闭右开区间
数组名.clone()
这也是数组拷贝的方法之一 有关数组操作的其他方法
Arrays.equals
它是判断两个数组的对象的值是否完全一样一样就返回true否则返回false 结果为 第一个打印false是因为数组是局部变量它存放了所指向对象的地址而array1与array2指向的空间不同即地址不同所以第一个是false
Arrays.fill
用法举例
将一个数组的值全部赋值为指定的值可以对各种类型的数组进行操作 也可以局部赋值
还是再加上from to即可 结果呢还是左闭右开区间