您的位置:首页 > 其它

数组复制的方式以及效率

2017-06-25 16:20 239 查看
参考《链接

简介

在Java中数组的复制有多种方式,常见的有:System.arraycopy、clone、Arrays.copyOf、for循环等,虽然这些都能实现数组的复制,但是效率相差较大。

效率:System.arraycopy > clone > Arrays.copyOf > for循环

理由:

A:for循环,效率最低,随便写个程序验证一下,效率慢的不是一点.....我测试的时候比clone和System.arraycopy差了100多倍

B:System.arraycopy:原型是public static native void arraycopy(Object src,  int  srcPos , Object dest, int destPos, int length);

C:Arrays.copyOf底层调用了上面的System.copyOf效率比上面两个低。

D:clone()的完整定义:protected native Object clone() throws CloneNotSupportedException;

总结

其实,一般情况下,前三个的效率差别几乎忽略不计,但是从Arrays.copyOf底层调用的System.arraycopy效率自然要低一些。而clone()和arraycopy只是从实验的结果来看是arraycopy的效率高。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: