//数组拷贝
public class Test {public static void main(String[] args) {String[] s = {"Microsoft", "IBM", "Sun", "Oracle", "Apple"};String[] sCopy  = new String[6];System.arraycopy(s, 0, sCopy, 0, s.length);for(int i = 0; i < s.length; i++) {System.out.print(s[i] + " ");}System.out.println();for(int i = 0; i < sCopy.length; i++) {System.out.print(sCopy[i] + " ");}System.out.println();int [][] intArray = {{1, 2}, {1, 3, 4}, {4, 9}};int [][] intArrayCopy = new int [3][];System.arraycopy(intArray, 0, intArrayCopy, 0,intArray.length);//有趣的问题从这里开始intArrayCopy[2][1] = 100;for(int i = 0; i < intArray.length; i++) {for(int j = 0; j < intArray[i].length; j++) {System.out.print(intArray[i][j] + " ");}System.out.println();}//浅层复制问题!}
}

-----------------------------------------------------------------第二个版本,  对上面版本的一点点优化-----------------------------------------

public class TestArrayCopy {public static void main(String[] args) {String[] s = { "Microsoft", "IBM", "Sun", "Oracle", "Apple" };String[] sCopy = new String[6];System.arraycopy(s, 0, sCopy, 0, s.length);for (int i = 0; i < s.length; i++) {System.out.print(s[i] + " ");}System.out.println();for (int i = 0; i < sCopy.length; i++) {System.out.print(sCopy[i] + " ");}System.out.println();int[][] intArray = { { 1, 2 }, { 3, 4, 5 }, { 6, 7 } };int[][] intArrayCopy = new int[3][];System.arraycopy(intArray, 0, intArrayCopy, 0, intArray.length);/*** 用arraycopy会带来潜在的,浅层复制的问题!*/intArray[2][1] = 100;for(int i = 0; i < intArray.length;i++) {for(int j = 0; j < intArray[i].length;j ++) {System.out.print(intArray[i][j] + " ");}System.out.println();}System.out.println();for(int i = 0; i < intArrayCopy.length;i++) {for(int j = 0; j < intArrayCopy[i].length;j ++) {System.out.print(intArrayCopy[i][j] + " ");}System.out.println();}}
}

转载于:https://www.cnblogs.com/wjchang/archive/2012/04/29/3671634.html

java例程练习(数组复制与arraycopy)相关推荐

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

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

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

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

  3. java数组复制的方式和效率比较

    java中,数组的复制有以下三种方式: 1. 调用System.arraycopy(Arrays.copyOfRange可以当作第四种,但是底层调用的是System.arraycopy,所以,认为是同 ...

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

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

  5. java数组复制_Java自学-数组 复制数组

    Java 如何复制数组 数组的长度是不可变的,一旦分配好空间,是多长,就多长,不能增加也不能减少 步骤 1 : 复制数组 把一个数组的值,复制到另一个数组中 System.arraycopy(src ...

  6. java 数组效率_java数组复制的四种方法效率对比

    有关数组的基础知识,有很多方面,比方说初始化,引用,遍历,以及一维数组和二维数组,今天我们先看看数组复制的有关内容. 来源于牛客网的一道选择题: JAVA语言的下面几种数组复制方法中,哪个效率最高? ...

  7. 回顾java数组复制

    在写这篇文章之前,也看了一些别人写的,基本上都是大同小异.文章是对java数组复制基础知识的回顾,算是作为学习笔记,供以后自己翻阅. 首先,简单想一下这个问题:为什么要复制数组? 我的个人理解:在我们 ...

  8. arraycopy - 数组复制【详细图解】

    1.arraycopy底层代码: 2.arraycopy的使用 第一个参数:源数组 第二个参数:在源数组中,被复制的数字开始复制的下标 第三个参数:目标数组 第四个参数:从目标数组中,从第几个下标开始 ...

  9. Java数组赋值数组复制(拷贝)

    Java数组赋值&数组复制(拷贝) 数组赋值 数组复制 1⃣️数组赋值 值传递(基本数据类型)与引用传递(数组)区别 值传递:基本数据类型赋值,赋给变量的值就是具体的数据,而且相互不受影响: ...

  10. java复制数组到数组,Java如何将一个数组元素复制到另一个数组

    Java如何将一个数组元素复制到另一个数组 1 说明 在此程序中,我们需要将一个数组的所有元素复制到另一个数组中.这可以通过循环遍历第一数组并将第一数组的元素存储到第二数组的相应位置来完成. 2 算法 ...

最新文章

  1. json vue 对象转数组_vue 基础入门(一)修改
  2. 小学校园里计算机文字,中小学计算机教学论文(共2228字).doc
  3. LeetCode40.组合总和|| JavaScript
  4. 知识图谱(五)——实体消歧
  5. Installshield在安装结束时刷新系统
  6. 界面设计方法 (1) — 5. 表单功能的设计
  7. 49.把字符串转换成整数
  8. sql in not in_SQL IN – SQL NOT IN
  9. json编辑器插件 vue_vue-json-editor json编辑器
  10. 统计学课程学习【理论】数据的图标展示
  11. mysql间隙锁_解决MySQL可重复读——详解间隙锁
  12. html+table表头固定,HTML table固定表头,htmltable固定表分享
  13. 微生物组实验手册:中科院、北大和清华等52家单位的74个团队的153篇方法正在创作中(15篇已投稿)...
  14. Visual Studio中的rc是什么文件
  15. java string数组循环_java数组中String [ ] a={aa,bb,cc};利用for循环进行遍历
  16. JS实现水波涟漪特效
  17. 37 篇! Facebook 今年被 CVPR 收录的论文都说了啥?
  18. 【毕业设计】深度学习图像语义分割算法研究与实现 - python 机器视觉
  19. 恒温恒湿实验室(房)建设、设计SICOLAB
  20. nessus安装及离线更新

热门文章

  1. 数据结构:最小生成树
  2. PHP实现Trie树(字典树)
  3. Android 扩展ViewFlipper做导航页(一)
  4. android基于开源网络框架asychhttpclient,二次封装为通用网络请求组件
  5. 别再骂中年人了,对他们好点吧~
  6. 一款开源Android在线音乐播放器
  7. 我为什么鼓励大家运营个人公众号
  8. android流媒体架构,基于Android平台的流媒体播放器的设计与实现
  9. 液压系统原理动画_图文讲解液压系统溢流阀分类与工作原理
  10. LInux下CAN滤波时间,linux下can调试工具canutils安装过程记录