java中数组的复制
数组复制使我们在编程过程中经常要使用到的,在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中数组的复制相关推荐
- 将java中数组转换为ArrayList的方法实例(包括ArrayList转数组)
方法一:使用Arrays.asList()方法 1 2 String[] asset = {"equity", "stocks", "gold&quo ...
- Java中数组转集合总结
一.使用Arrays.asList() 方法 package com.joshua317;import java.util.*;public class Main {public static voi ...
- java中数组赋值方法
Java中数组赋值方法,以及为什么不能使用a = b //这里定义两个长度相同的数组,其中数组二为空 int[] arr1 = new int[]{1,2,3,4,5,6,0,0,0,0}; int[ ...
- java 复制 粘贴_在java中如何实现复制,粘贴,剪切
在java中如何实现复制,粘贴,剪切 关注:272 答案:2 mip版 解决时间 2021-01-25 02:48 提问者挥映在沉默里的渲染 2021-01-24 22:41 请分别写出来,而且讲 ...
- Java中数组以及集合
2019独角兽企业重金招聘Python工程师标准>>> java中数组: 数组在Java里是一种特殊类型,有别于普通的"类的实例"的对象.但实际数组也是一种对象类 ...
- Java中数组的地址问题(hashCode解析):
Java中数组的地址问题(hashCode解析): import java.util.Arrays;public class Action1 {public static void main(Stri ...
- Java中数组在内存中的存放原理?
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/yangyong0717/article/details/79165685 Java中数组被实现为对象 ...
- Java语言程序设计 上机实验2 掌握Java的基本语言成分和流程控制语句。 掌握Java中数组的使用,理解引用数据类型。 掌握String类的使用。...
Java语言程序设计 上机实验2 实验目的: 掌握Java的基本语言成分和流程控制语句. 掌握Java中数组的使用,理解引用数据类型. 掌握String类的使用. 实验内容: 注:标(*)为选做内 ...
- JavaScript 与java中数组的区别
1. JavaScript 中的数组的长度是可变的 Java中数组的长度是固定的 2.javaScript中的元素是可以是任意类型
最新文章
- 一位39岁程序员的困惑:知道得越多编程越慢怎么办?
- 让电影动漫统统变丝滑,480帧也毫无卡顿,交大博士生开源插帧软件DAIN
- WM有约II(二):持续改进
- Python Django HttpResponse响应对象
- php和mysql两种不同方式的分割字符串和类型转换
- Android之switch控件的用法
- IDEA Terminal替换成Git Bash_05
- centos 计算器_centos计算内存CPU正确方法
- js 负数移位运算究竟如何进行
- 趣讲 PowerJob 超强大的调度层,开始表演真正的技术了
- 如何构建自己的笔记系统?
- 猪是这样养成的(网络架构知识普及)
- 安卓开源项目周报0301
- 反弹c语言作业,C语言实现反弹球游戏
- 蓝桥杯 阅兵方阵(预处理+暴力)
- Java程序设计 -- 常用API(上)(九)
- ubuntu鼠标指针替换
- 百度,阿里,搜狐公司社招面试题及总结
- cgroup v2介绍及测试
- 名帖232 张雨 行书《行书帖选》