Java数组的复制Arrays.copyOf()、System.arraycopy()、nums.clone()
2016-08-16 01:38
555 查看
public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length);
arraycopy是个本地方法,无返回值。
public static <T,U> T[] copyOf(U[] original, int newLength, Class<? extends T[]> newType) { T[] copy = ((Object)newType == (Object)Object[].class) ? (T[]) new Object[newLength] : (T[]) Array.newInstance(newType.getComponentType(), newLength); System.arraycopy(original, 0, copy, 0, Math.min(original.length, newLength)); return copy; } public static <T> T[] copyOf(T[] original, int newLength) { return (T[]) copyOf(original, newLength, original.getClass()); }
copyOf()底层调用arraycopy,不过可以直接返回一个数组,代码更加简短,只是自定义数组长度的能力更差了。
最简单的方法直接调用num2=num.clone()即可返回,该方法默认是一个浅拷贝,但是对于int和String型数组,相当于深拷贝(String[] str={"1","123"},str[0]="2"并没有改变"1"的内容,而是新建了一个String,将str[0]指向这个String而已)
相关文章推荐
- Java数组的复制Arrays.copyOf()、System.arraycopy()、nums.clone()
- java数组的拷贝四种方法:for、clone、System.arraycopy、arrays.copyof
- java数组的四种拷贝方法的性能分析:for、clone、System.arraycopy、Arrays.copyof
- java数组的拷贝四种方法:for、clone、System.arraycopy、arrays.copyof
- Arrays.copyof(···)与System.arraycopy(···)数组元素复制区别
- [java]数组复制小结 for 、clone、 System.arraycopy
- [java]数组复制小结 for 、clone、 System.arraycopy
- System.arraycopy实现数组之间的复制以及Arrays类的copyOf()实现数组复制
- Java—使用System.arraycopy()实现数组之间的复制
- System.arraycopy() vs. Arrays.copyOf() in Java
- java 数组复制:System.arrayCopy 解析
- java中System.copyArray与Arrays.copyof区别
- Java使用System.arraycopy复制数组
- java System.arraycopy 数组复制和合并
- java 数组复制:System.arrayCopy 深入解析
- 【java performance】使用'System.arraycopy ()'代替通过来循环复制数组
- System.arrayCopy (java 数组复制) 深入解析
- JAVA System.arraycopy 和Arrays.copyof 效率比较
- Java编程:Arrays.copyOf()与System.arraycopy()的分析
- 2017/12/30Java基础学习——复制数组のSystem.arraycopy()方法讲解