1、System.arraycopy()
源码:
public static native void arraycopy(Object src, int srcPos,
Object dest, int destPos,int length);
可以看出它是一个本地方法,所以效率比较高 。
- src:源数组
- srcPos:源数组要复制起始的位置
- dest:目的数组
- destPos: 目的数组放置的起始位置
- length:源数组复制的长度
- src和dest必须是同类型或者可以进行转换类型的数组
2、Arrays.copyOf()
源码:
public static <T> T[] copyOf(T[] original, int newLength) {
return (T[]) copyOf(original, newLength, original.getClass());
}
public static <T,U> T[] copyOf(U[] original, int newLength, Class<? extends T[]> newType) {
@SuppressWarnings("unchecked")
T[] copy = ((Object)newType == (Object)Object[].class)?(T[]) new Object[newLength]
: (T[]) Array.newInstance(newTy