脚本宝典收集整理的这篇文章主要介绍了Arrays工具类copyof,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
它是Arrays工具类的方法。使用:Arrays.copyof(原数组,长度);
将旧数组中的元素按照指定位置拷贝到新数组中。
package com.powernode.arrays;import java.util.Arrays;public class Demo6 { public static void main(String[] args) { int[] arr = {5, 12, 18, 28, 45, 59, 72, 76, 77, 90}; int[] newArr = Arrays.copyOf(arr, 5); System.out.println("原数组:" + Arrays.toString(arr)); System.out.println("新数组:" + Arrays.toString(newArr)); System.out.println(arr == newArr); }}
点击进入copyof它的底层是一个这个方法:
public static int[] copyOf(int[] original, int newLength) { int[] copy = new int[newLength]; System.arraycopy(original, 0, copy, 0,Math.min(original.length, newLength)); return copy; }
在点进arraycopy中,可以看到是如下:
public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length);
src
:原数组
srcPos
:从原数组第几个索引位置开始拷贝
dest
:新数组
destPost
:从新数组的第几个索引开始赋值
length
:从原数组拷贝几个元素
int[] arr = {5, 12, 18, 28, 45, 59, 72, 76, 77, 90}; int[] newArr = new int[10]; //把arr数组从下标为1的位置开始拷贝到newArr数组的第0个下标开始,元素个数是arr的长度-1个, System.arraycopy(arr,1,newArr,0,arr.length-1); System.out.println(Arrays.toString(newArr));结果为:[12, 18, 28, 45, 59, 72, 76, 77, 90, 0]
补充:
此方法只有声明,没有实现。第一次看见方法使用关键字native
修饰的,native修饰表示这个是一个本地方法。
java有个用户和本地c代码进行互操作的API,称为java本地接口
引出native是因为java是一个跨平台的语言,所以它牺牲了一些对底层的控制,此时需要其他语言的帮助了比如:c、c++。java无法直接访问到操作系统底层,所以使用native方法来帮助实现一些扩展功能。使用native修饰的方法不是用java语言写的,是由c或c++编写的。
//删除元素下标为2的元素 int[] arr = {5, 12, 18, 28, 45, 59, 72, 76, 77, 90}; int index=2; System.arraycopy(arr,index+1,arr,index,arr.length-index-1); arr[arr.length-1]=0;//把最后一个元素置为0 System.out.println(Arrays.toString(arr));结果:[5, 12, 28, 45, 59, 72, 76, 77, 90, 0]
//在数组中插入一个元素,在下标为2的位置插入222 int[] arr = {5, 12, 18, 28, 45, 59, 72, 76, 77, 90}; int index=2; int[] newArr=new int[arr.length+1]; //先把arr中的5,12拷贝到newArr中 System.arraycopy(arr,0,newArr,0,index);//[5, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0] //在把arr中后面的元素拷贝到index+1的位置 System.arraycopy(arr,index,newArr,index+1,arr.length-index);//[5, 12, 0, 18, 28, 45, 59, 72, 76, 77, 90] newArr[index]=222; System.out.println(Arrays.toString(newArr));结果为:[5, 12, 222, 18, 28, 45, 59, 72, 76, 77, 90]
以上是脚本宝典为你收集整理的Arrays工具类copyof全部内容,希望文章能够帮你解决Arrays工具类copyof所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。