Arrays.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;
    }

首先new一个新数组 然后copy过去 return这个新数组

int[] strArray = new int[] {1,2,3,4};
int[] copyArray=Arrays.copyOf(strArray,2);

结果copyArray就是1,2

int[] strArray = new int[] {1,2,3,4};
int[] copyArray=Arrays.copyOf(strArray,10);

结果1 2 3 4 0 0 0 0 0 0

不会报错 因为最后的数组总是按后面那个newLength规定的新数组来说

用System.arraycopy:

int[] strArray = new int[] {1,2,3,4};
        int[] copyArray = new int[4];
        System.arraycopy(strArray, 0, copyArray, 0, 5);

直接报错:java.lang.ArrayIndexOutOfBoundsException

如果把最后的5改成3

copyArray :1 2 3 0 
时间: 2024-10-25 16:06:55

Arrays.copyof的相关文章

System.arraycopy()和Arrays.copyOf()的区别

先看看System.arraycopy()的声明: public static native void arraycopy(Object src,int srcPos, Object dest, int destPos,int length); src - 源数组. srcPos - 源数组中的起始位置. dest - 目标数组. destPos - 目标数据中的起始位置. length - 要复制的数组元素的数量. 该方法用了native关键字,说明调用的是其他语言写的底层函数. 再看Arra

System.arraycopy和Arrays.copyOf的比较

public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length); 用了native关键字,调用的为C++编写的底层函数,可见其为JDK中的底层函数. public static int[] copyOf(int[] original, int newLength) { int[] copy = new int[newLength]; System.arraycopy

java 之System.arraycopy() vs arrays.copyOf()

在java中,数组的复制可以有System.arraycopy与arrays.copyOf()两种选择,下面就详细介绍一下这两种方法的差别: System.arraycopy int[] src = {1,2,3,4,5}; int[] des = new int[10]; System.arraycopy(arr, 0, copied, 1, 5); //5 is the length to copy System.out.println(Arrays.toString(des)); 输出结果

System.arraycopy 和Arrays.copyOf

1.Arrays.copyOf()的实现是用的是arrayCopy(); 2.System.arrayCopy()需要目标数组,对两个数组的内容进行可能不完全的合并操作. 3.Arrays.copyOf()在内部新建一个数组,调用System.arrayCopy()将original内容复制到copy中去,并  且长度为newLength.返回copy; 所以,使用System.arrayCopy()必须确定原数组不为null,且新数组的容量必须大于原数组 Arrays.copyOf()则已经新

关于Java 拷贝数组方法 Arrays.copyOf() 是地址传递还是值传递

基本元素为对象时,浅拷贝,拷贝引用(ArrayList 的clone()调用Arrays.copyof(),官方文档注明为浅拷贝) class A{ int a; public A(int a){ this.a=a; } public String toString(){ return a+""; } } A[] kk=new A[2]; kk[0]=new A(1); kk[1]=new A(2); A[] kkk=Arrays.copyOf(kk,2); System.out.pr

System.arraycopy() or Arrays.copyOf()

1. Simple Code Examples System.arraycopy() int[] arr = {1,2,3,4,5}; int[] copied = new int[10]; System.arraycopy(arr, 0, copied, 1, 5);//5 is the length to copy System.out.println(Arrays.toString(copied)); Output: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] [0, 1

Java-Java中System.arraycopy() 和 Arrays.copyOf()两者之间的区别

如果我们想拷贝一个数组,我们可能会使用System.arraycopy()或者Arrays.copyof()两种方式.在这里,我们将使用一个比较简单的示例来阐述两者之间的区别. 1.示例代码: System.arraycopy() int[] arr = {1,2,3,4,5}; int[] copied = new int[10]; System.arraycopy(arr, 0, copied, 1, 5);//5 is the length to copy System.out.print

java数组的拷贝四种方法:for、clone、System.arraycopy、arrays.copyof

public class ArrayCopy{ public static void main(String []args){ int []a = {1,3,4,5}; toPrint(a); int []aFor=new int[a.length]; //1.for循环复制 System.out.println("===========1.使用for复制"); for(int i=0;i<a.length;i++){ aFor[i]=a[i]; } aFor[2]=10;//改

java.lang.System.arraycopy() 与java.util.Arrays.copyOf()的区别

java.lang.System.arraycopy() 与java.util.Arrays.copyOf()的区别 一.java.lang.System.arraycopy() 该方法的声明: /* @param src 源数组 * @param srcPos 源数组中的起始位置 * @param dest 目标数组 * @param destPos 目标数组中的起始位置 * @param length 需要被复制的元素个数 * @exception IndexOutOfBoundsExcep