写点什么

1 分钟学习 Java 中数组快速复制

用户头像
HQ数字卡
关注
发布于: 2020 年 05 月 26 日

数组是我们开发中常用的数据结构。你了解 Java 的数组复制吗? Java System 类提供了的 arraycopy 快速复制数组方法。


/**  * @param      src      the source array. 源数组  * @param      srcPos   starting position in the source array. 源数组起始位置  * @param      dest     the destination array. 目标数组  * @param      destPos  starting position in the destination data. 目标数组起始位置  * @param      length   the number of array elements to be copied. 复制长度  */  public static native void arraycopy(Object src,  int  srcPos, Object dest, int destPos,int length);
复制代码


简单使用:

public class ArrayCopyTest {    public static void main(String[] args) {        int[] arr = {1, 2, 3};        int[] destArr = new int[arr.length];        System.arraycopy(arr, 0, destArr, 0, arr.length);    }}
复制代码


小知识点。我们常用的 Arrays.copyOf()也是使用 System.arraycopy()实现。

/** * @param <U> the class of the objects in the original array * @param <T> the class of the objects in the returned array * @param original the array to be copied * @param newLength the length of the copy to be returned * @param newType the class of the copy to be returned * @return a copy of the original array, truncated or padded with nulls *     to obtain the specified length */ 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(newType.getComponentType(), newLength);        System.arraycopy(original, 0, copy, 0,                         Math.min(original.length, newLength));        return copy;    }
复制代码


以上就是 Java 数组的快速复制。你学会了吗?

发布于: 2020 年 05 月 26 日阅读数: 51
用户头像

HQ数字卡

关注

还未添加个人签名 2019.09.29 加入

LeetCode,略懂后端的RD

评论

发布
暂无评论
1分钟学习Java中数组快速复制