数组复制的方式以及效率
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的效率高。
简介
在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的效率高。
相关文章推荐
- C#复制数组的两种方式,以及效率比较
- C#复制数组的两种方式,以及效率比较
- java笔记之数组的概念、声明、初始化、访问方式、复制和动态扩展算法以及递归
- java笔记之数组的概念、声明、初始化、访问方式、复制和动态扩展算法以及递归
- java数组复制的方式和效率比较
- PHP 数组的遍历的几种方式(以及foreach与for/while+each效率的比较)
- java数组复制的方式和效率比较
- java数组复制的方式和效率比较
- java笔记之数组的概念、声明、初始化、访问方式、复制和动态扩展算法以及递归
- 使用字节流复制文件的四种方式以及效率比较
- (六)两种方式将一个文件的内容复制到另一个文件(第二种方式效率更高,第一种一个字符一个字符的读写,第二种一个数组一个数组的读写)
- 数组的下标访问和指针访问方式效率分析比较
- jQuery中json对象的复制方式介绍(数组及对象)
- OC 数组取值方式效率问题
- java数组复制的4种方式,java数组拷贝问题
- 比较C#中几种常见的复制字节数组方法的效率
- js中对象的声明方式以及数组的一些用法示例
- java字节流的方式复制一个文件,按数组读取和写入
- 关于在C#中数组(byte[])复制的两种方式。字节偏移复制与安全复制
- 关于在C#中数组(byte[])复制方式