Java对数组的复制[转]】的更多相关文章

苏格拉底曾说过,“世界上最快乐的事,莫过于为理想而奋斗.”人生短短数十年,何不为梦想而奋斗一把?其实只要主动追求,梦想并不遥远.总有一天,你会把它攥在手里. 作为写的第一篇Java文章,展望一下开始下面的学习: 数组: 1.数组浅拷贝: public static void main(String[] args) { int [] a={1,3,5,7,8,9}; int[] b=a; //这里赋值的只是数组的地址 System.out.println(Arrays.toString(a));…
数组复制使我们在编程过程中经常要使用到的,在java中数组复制我们大概能够分为两种,一种是引用复制,还有一种就是深度复制(复制后两个数组互不相干). 以下我们就通过測试的方法来具体看看什么是引用复制和深度复制. 引用复制: 顾名思义就是其值是引用的,值得改变会随着被引用的对象改变. System.out.println("引用复制-----------------------------"); int[] e = {1,2,3,4,56,7,8}; int[] f = e; for(i…
原文地址http://x10232.iteye.com/blog/2230762 定义一个数组 int[] a={3,1,4,2,5}: int[] b=a: int[] a={3,1,4,2,5}: int[] b=a: 数组b只是对数组a的又一个引用,即浅拷贝. 如果改变数组b中元素的值,其实是改变了数组a的元素的值,要实现深度复制,可以用clone或者System.arrayCopy int[] a={3,1,4,2,5}: int[] b=a.clone(): b[0]=10: Syst…
初学Java的时候,需要复制数组的时候,一下子就想到使用赋值语句“=”,例如:array1 = array2:但后来慢慢发现,这个语句并不能将array2的内容复制给array1,而是将array2的引用传给了array1.使用array1 = array2 这个语句之后,array1,array2指向了同一个数组,如下图所示:                                               这样,array2之前所引用的数组不能再引用了,变成了垃圾,会被JVM自动回…
JAVA二维数组的复制 笔者今天做一道ccf题目时,遇到要将二维数组拷贝复制时,没有用常规的那种一个一个数的复制,用的是System.arraycopy()来进行复制,下面介绍这个函数的一些注意点: 函数形式:  System.arraycopy(Object src, srcindex, Object dest,destindex,length) Object src:源数组  srcindx:原数组起始下标 Object dest:目的数组 destindex:目的数组开始的下标 lengt…
在java中数组复制有两种方式: 一:System.arraycopy(原数组,开始copy的下标,存放copy内容的数组,开始存放的下标,需要copy的长度); 这个方法需要先创建一个空的存放copy内容的数组,再将原先数组得我内容复制到新数组中. ,,,,}; ]; System.arraycopy(arr, , copied, , );//5 is the length to copy System.out.println(Arrays.toString(copied)); 二:Array…
1.将一个基本数据类型数组的引用赋值给另一个数组 public class Array_copy { int[] array1=new int[]{1,2,3,4,5,6}; int[] array2=array1;//将array1的引用赋值给array2,两数组指向同一个内存空间 public static void main(String args[]){ Array_copy ac = new Array_copy(); for (int i=0;i<ac.array1.length;i…
我们知道在Java中数组是非基本类型既数组是对象(Object)的子类,所以用下面的这种方式是不能复制该对象的 public static void main(String[] args) { int[] arry1 = new int[]{1, 2, 3, 4}; //数组赋值 int[] arry2 = arry1; //一个数组对象,两个引用同时引用该对象 System.out.println(arry1[1]); System.out.println(arry2[1]); arry1[1…
对于数组的复制,在最开始的时候最容易犯的一个错误,那就是自己认为的申请一个数组,然后将已存在的数组赋值到新申请数组名上,这样是错误的,这样仅仅是将数组的地址复制了过去,并不是,将数组内的元素拷贝过去,这样的复制在C\C++中叫做浅拷贝. 同样话不多说,上代码. 一个典型的错误例子(test2.java): ------------------------------------------------------------------------------- public class tes…
java数组的复制分为数组地址的复制和值的复制 地址的复制: int []arrA={11,22,33,44}; //创建一个数组 int [] arrB=new int[5]; System.out.println("拷贝地址(引用)之前"); System.out.println("arrA="+arrA); System.out.println("arrB="+arrB); //引用的拷贝 arrB=arrA; System.out.pri…