数组复制使我们在编程过程中经常要使用到的,在java中数组复制我们大概能够分为两种,一种是引用复制,还有一种就是深度复制(复制后两个数组互不相干)。

以下我们就通过測试的方法来具体看看什么是引用复制和深度复制。

引用复制:

顾名思义就是其值是引用的,值得改变会随着被引用的对象改变。

System.out.println("引用复制-----------------------------");int[] e = {1,2,3,4,56,7,8};int[] f = e;for(int i=0;i<f.length;i++){System.out.println(f[i]);}System.out.println("更改原始一维数组引用复制-----------------------------");for(int i=0;i<e.length;i++){e[i]=1;}for(int i=0;i<f.length;i++){System.out.println(f[i]);}  

结果:

引用复制-----------------------------
1
2
3
4
56
7
8
更改原始一维数组引用复制-----------------------------
1
1
1
1
1
1
1

以下在展示下两种深度复制的代码:

有两种方法:

一种是clone(),还有一种是System.arraycopy().

System.out.println("一维数组深度复制-----------------------------");int[] a = {1,2,3,4,56,7,8};int[] b = (int[])a.clone();for(int i=0;i<b.length;i++){System.out.println(b[i]);}System.out.println("更改原始一维数组深度复制-----------------------------");for(int i=0;i<a.length;i++){a[i]=1;}for(int i=0;i<b.length;i++){System.out.println(b[i]);}    System.out.println("一维数组深度复制1-----------------------------");int[] c = {1,2,3,4,56,7,8};int[] d = new int[c.length];System.arraycopy(c,0, d, 0, c.length);for(int i=0;i<d.length;i++){System.out.println(d[i]);}System.out.println("更改原始一维数组深度复制1-----------------------------");for(int i=0;i<c.length;i++){c[i]=1;}for(int i=0;i<d.length;i++){System.out.println(d[i]);}    

结果显示:

一维数组深度复制-----------------------------
1
2
3
4
56
7
8
更改原始一维数组深度复制-----------------------------
1
2
3
4
56
7
8
一维数组深度复制1-----------------------------
1
2
3
4
56
7
8
更改原始一维数组深度复制-----------------------------
1
2
3
4
56
7
8

转载于:https://www.cnblogs.com/cxchanpin/p/6807240.html

java中数组的复制相关推荐

  1. 将java中数组转换为ArrayList的方法实例(包括ArrayList转数组)

    方法一:使用Arrays.asList()方法 1 2 String[] asset = {"equity", "stocks", "gold&quo ...

  2. Java中数组转集合总结

    一.使用Arrays.asList() 方法 package com.joshua317;import java.util.*;public class Main {public static voi ...

  3. java中数组赋值方法

    Java中数组赋值方法,以及为什么不能使用a = b //这里定义两个长度相同的数组,其中数组二为空 int[] arr1 = new int[]{1,2,3,4,5,6,0,0,0,0}; int[ ...

  4. java 复制 粘贴_在java中如何实现复制,粘贴,剪切

    在java中如何实现复制,粘贴,剪切 关注:272  答案:2  mip版 解决时间 2021-01-25 02:48 提问者挥映在沉默里的渲染 2021-01-24 22:41 请分别写出来,而且讲 ...

  5. Java中数组以及集合

    2019独角兽企业重金招聘Python工程师标准>>> java中数组: 数组在Java里是一种特殊类型,有别于普通的"类的实例"的对象.但实际数组也是一种对象类 ...

  6. Java中数组的地址问题(hashCode解析):

    Java中数组的地址问题(hashCode解析): import java.util.Arrays;public class Action1 {public static void main(Stri ...

  7. Java中数组在内存中的存放原理?

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/yangyong0717/article/details/79165685 Java中数组被实现为对象 ...

  8. Java语言程序设计 上机实验2 掌握Java的基本语言成分和流程控制语句。 掌握Java中数组的使用,理解引用数据类型。 掌握String类的使用。...

      Java语言程序设计 上机实验2 实验目的: 掌握Java的基本语言成分和流程控制语句. 掌握Java中数组的使用,理解引用数据类型. 掌握String类的使用. 实验内容: 注:标(*)为选做内 ...

  9. JavaScript 与java中数组的区别

    1. JavaScript 中的数组的长度是可变的     Java中数组的长度是固定的 2.javaScript中的元素是可以是任意类型

最新文章

  1. 一位39岁程序员的困惑:知道得越多编程越慢怎么办?
  2. 让电影动漫统统变丝滑,480帧也毫无卡顿,交大博士生开源插帧软件DAIN
  3. WM有约II(二):持续改进
  4. Python Django HttpResponse响应对象
  5. php和mysql两种不同方式的分割字符串和类型转换
  6. Android之switch控件的用法
  7. IDEA Terminal替换成Git Bash_05
  8. centos 计算器_centos计算内存CPU正确方法
  9. js 负数移位运算究竟如何进行
  10. 趣讲 PowerJob 超强大的调度层,开始表演真正的技术了
  11. 如何构建自己的笔记系统?
  12. 猪是这样养成的(网络架构知识普及)
  13. 安卓开源项目周报0301
  14. 反弹c语言作业,C语言实现反弹球游戏
  15. 蓝桥杯 阅兵方阵(预处理+暴力)
  16. Java程序设计 -- 常用API(上)(九)
  17. ubuntu鼠标指针替换
  18. 百度,阿里,搜狐公司社招面试题及总结
  19. cgroup v2介绍及测试
  20. 名帖232 张雨 行书《行书帖选》

热门文章

  1. 2022-2028年中国NFT行业市场研究及前瞻分析报告
  2. debian10 简单搭建squid
  3. python中的next()以及iter()函数
  4. 使用Spring容器
  5. LeetCode简单题之将找到的值乘以2
  6. GPU指令集技术分析
  7. 编译器架构Compiler Architecture(上)
  8. AlexeyAB DarkNet YOLOv3框架解析与应用实践(二)
  9. CVPR2020论文解析:视频语义检索
  10. 2021年大数据ELK(十九):使用FileBeat采集Kafka日志到Elasticsearch