System.arrayCopy()和普通数组复制之间的效率差别
都是System.arrayCopy() 效率高,到底有多高呢,拉出来遛遛就知道了:
package JCF.ArrayList;import java.util.Date;public class ArrayCopyCompare {public static void main(String[] args) {int length = 1000000;//initSystem.out.println("array length : "+length);int[] array = new int[length];for(int i = 0 ; i < array.length ; i ++){array[i] = i;}//use method by systemlong begin1 = new Date().getTime();int[] arrayCopyBySystem = new int[length];System.arraycopy(array, 0, arrayCopyBySystem, 0, array.length);long end1 = new Date().getTime();System.out.println("use time by system method : "+(end1 - begin1));//use method normallong begin2 = new Date().getTime();int[] arrayCopyByNormal = new int[length];for(int i = 0 ; i < arrayCopyByNormal.length ; i ++){arrayCopyByNormal[i] = array[i];}long end2 = new Date().getTime();System.out.println("use time by narmal method : " +(end2 - begin2));}
}
常用的数组复制方法就按照循环赋值的防范, 下面列举有不多长度数组的效率比较:
array length : 10000 use time by system method : 0 use time by narmal method : 0
array length : 100000 use time by system method : 0 use time by narmal method : 2
array length : 1000000 use time by system method : 3 use time by narmal method : 5
array length : 10000000 use time by system method : 25 use time by narmal method : 29
array length : 100000000 use time by system method : 279 use time by narmal method : 293
所以在数组长度不大时,两者效率可以忽略, 但是数组长度变大时,System.arrayCopy()还是有效率优势的, 但是感觉效率提升没有想象的大。
转载于:https://www.cnblogs.com/wellmaxwang/p/4499445.html
System.arrayCopy()和普通数组复制之间的效率差别相关推荐
- java arraycopy 参数_java 数组复制:System.arrayCopy 深入解析
先看ArrayList源码中数组复制的代码: 其实ArrayList 就是一个数组的形式存放数据的.没有高深的地方. 他的性能在于他的索引能力,正因为他是数组形式,所以索引元素的时候他表现得非常的快速 ...
- java中arraycopy的用法_[jdk源码阅读系列]Java中System.arraycopy()的用法
本文转载,原文链接: 3分钟了解Java中System.arraycopy的用法 - 伊万夫斯基 - 博客园 https://www.cnblogs.com/benjieqiang/p/114288 ...
- java arraycopy 实现_java的system.arraycopy()方法
java.lang.System的静态方法arraycopy()可以实现数组的复制,讲课的老师说这个方法效率比较高,如果数组有成千上万个元素,那么用这个方法,比用for语句循环快不少.于是我试了试,发 ...
- System.arraycopy 和Arrays.copyOf
1.Arrays.copyOf()的实现是用的是System.arrayCopy(); 2.System.arrayCopy()需要目标数组,对两个数组的内容进行可能不完全的合并操作. 3.Array ...
- 【集合类】 4 System:System.arraycopy方法解析
文章目录 引言 1.System.arraycopy 1.1 深复制还是浅复制 1.2 一维数组和多维数组的复制的区别 1.2.1 一维数组 1.2.2 多维数组 1.3 线程安全,还是不安全 1.4 ...
- System.arraycopy()实现数组之间的复制
System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制.其函数原型是: public static void arraycopy(Object src,int src ...
- [Java] System.arraycopy 数组复制
函数原型: public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) ; s ...
- 数组复制速度 System.arraycopy()clone() Arrays.copyof() for()探究
先申明复制速度结果 System.arraycopy() clone() Arrays.copyof() for() 背后原理探究 首先要申明的是这4种方法中的前3种是没有本质区别的,对象都是浅复制( ...
- java arraycopy二维数组_System.arraycopy()实现数组的复制与交换
今天在读别人代码的时候,发现了一个数组之间复制很不错的方法,就分享记录下吧.同时小小的研究下了它的使用方法. System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制. ...
- java字符串数组拷贝函数_java 数组的拷贝 对象数组的拷贝 System.arraycopy函数
/* java 数组的操作 System类的arraycopy静态函数用于数组拷贝 数组是不能越界的 对象数组的复制实际上是复制的引用的拷贝 也就是对象的地址 */ class Point ...
最新文章
- CVPR 2019超全论文合集新鲜出炉!| 资源帖
- 架构师之前,请先进阶,不要只会 Spring
- python中formatter的用法_sql-formatter 格式化sql
- 视口和窗口的理解方法
- NYOJ 371 机器人II
- webpack学习(七)打包压缩图片
- streamsets 集成 minio s3测试
- python安装环境傻瓜式安装_前后端分离——前端开发环境傻瓜式一步到位 nodejs ruby python nginx 安装搭建配置...
- SpringMVC 控制层注解
- python时间控件遮罩层_jquery遮罩层插件
- php mysql blob存储图片_php mysql blob存储图片
- Hyper-v 虚拟机使用NAT方式连接网络
- 《MATLAB智能算法30个案例》:第5章 基于遗传算法的LQR控制器优化设计
- 在线教育如何应对流量洪峰?阿里云专家给出了“上云+云数据库”的答案!
- Java热搜问题大整理
- MPC5744P-UART(LIN)模块
- cordova 图标设置
- H.323 and Associated Protocols
- java课程设计 华容道_JAVA课设华容道总的
- js股票K线图,比较专业的K线图插件
热门文章
- ids和ips主要区别在于_数控机床和普通机床的最主要的区别是在于什么,你知道吗?...
- 【Erlang开源项目】HTTP客户端ibrowse
- 将网页发布到远程windows server
- 关于软件工程的课程建议
- 6月27日 OGDF不同的布局算法
- 在开发iOS程序时对日期处理的总结
- Ubuntu Geany打开文件乱码的解决方法
- 【CVPR2005】梯度方向直方图(Histogram of Oriented Gradients,简称HOG)
- 安装tensorflow时候报错ImportError: DLL load failed: 找不到指定的模块。Failed to load the native TensorFlow runtime.
- 数据--第53课 - 扩展学习