都是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()和普通数组复制之间的效率差别相关推荐

  1. java arraycopy 参数_java 数组复制:System.arrayCopy 深入解析

    先看ArrayList源码中数组复制的代码: 其实ArrayList 就是一个数组的形式存放数据的.没有高深的地方. 他的性能在于他的索引能力,正因为他是数组形式,所以索引元素的时候他表现得非常的快速 ...

  2. java中arraycopy的用法_[jdk源码阅读系列]Java中System.arraycopy()的用法

    本文转载,原文链接: 3分钟了解Java中System.arraycopy的用法 - 伊万夫斯基 - 博客园  https://www.cnblogs.com/benjieqiang/p/114288 ...

  3. java arraycopy 实现_java的system.arraycopy()方法

    java.lang.System的静态方法arraycopy()可以实现数组的复制,讲课的老师说这个方法效率比较高,如果数组有成千上万个元素,那么用这个方法,比用for语句循环快不少.于是我试了试,发 ...

  4. System.arraycopy 和Arrays.copyOf

    1.Arrays.copyOf()的实现是用的是System.arrayCopy(); 2.System.arrayCopy()需要目标数组,对两个数组的内容进行可能不完全的合并操作. 3.Array ...

  5. 【集合类】 4 System:System.arraycopy方法解析

    文章目录 引言 1.System.arraycopy 1.1 深复制还是浅复制 1.2 一维数组和多维数组的复制的区别 1.2.1 一维数组 1.2.2 多维数组 1.3 线程安全,还是不安全 1.4 ...

  6. System.arraycopy()实现数组之间的复制

    System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制.其函数原型是: public static void arraycopy(Object src,int src ...

  7. [Java] System.arraycopy 数组复制

    函数原型: public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) ; s ...

  8. 数组复制速度 System.arraycopy()clone() Arrays.copyof() for()探究

    先申明复制速度结果 System.arraycopy() clone() Arrays.copyof() for() 背后原理探究 首先要申明的是这4种方法中的前3种是没有本质区别的,对象都是浅复制( ...

  9. java arraycopy二维数组_System.arraycopy()实现数组的复制与交换

    今天在读别人代码的时候,发现了一个数组之间复制很不错的方法,就分享记录下吧.同时小小的研究下了它的使用方法. System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制. ...

  10. java字符串数组拷贝函数_java 数组的拷贝 对象数组的拷贝 System.arraycopy函数

    /* java 数组的操作   System类的arraycopy静态函数用于数组拷贝   数组是不能越界的 对象数组的复制实际上是复制的引用的拷贝  也就是对象的地址 */ class Point ...

最新文章

  1. CVPR 2019超全论文合集新鲜出炉!| 资源帖
  2. 架构师之前,请先进阶,不要只会 Spring
  3. python中formatter的用法_sql-formatter 格式化sql
  4. 视口和窗口的理解方法
  5. NYOJ 371 机器人II
  6. webpack学习(七)打包压缩图片
  7. streamsets 集成 minio s3测试
  8. python安装环境傻瓜式安装_前后端分离——前端开发环境傻瓜式一步到位 nodejs ruby python nginx 安装搭建配置...
  9. SpringMVC 控制层注解
  10. python时间控件遮罩层_jquery遮罩层插件
  11. php mysql blob存储图片_php mysql blob存储图片
  12. Hyper-v 虚拟机使用NAT方式连接网络
  13. 《MATLAB智能算法30个案例》:第5章 基于遗传算法的LQR控制器优化设计
  14. 在线教育如何应对流量洪峰?阿里云专家给出了“上云+云数据库”的答案!
  15. Java热搜问题大整理
  16. MPC5744P-UART(LIN)模块
  17. cordova 图标设置
  18. H.323 and Associated Protocols
  19. java课程设计 华容道_JAVA课设华容道总的
  20. js股票K线图,比较专业的K线图插件

热门文章

  1. ids和ips主要区别在于_数控机床和普通机床的最主要的区别是在于什么,你知道吗?...
  2. 【Erlang开源项目】HTTP客户端ibrowse
  3. 将网页发布到远程windows server
  4. 关于软件工程的课程建议
  5. 6月27日 OGDF不同的布局算法
  6. 在开发iOS程序时对日期处理的总结
  7. Ubuntu Geany打开文件乱码的解决方法
  8. 【CVPR2005】梯度方向直方图(Histogram of Oriented Gradients,简称HOG)
  9. 安装tensorflow时候报错ImportError: DLL load failed: 找不到指定的模块。Failed to load the native TensorFlow runtime.
  10. 数据--第53课 - 扩展学习