⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 arraycopyexample.java

📁 java编程的一些编程习题 内附源码答案。。。。。。。系列三
💻 JAVA
字号:
//: ArraycopyExample.java

//package g3ds.joop.ch4;

public class ArraycopyExample{
	public static void main(String[] args){
		//创建一个int型数组
		int[] i1={1, 2, 3};
		
		//把int型数值从i1复制到i2的部分元素中:i1[0]->i2[1]
		int[] i2=new int[3];
		System.arraycopy(i1, 0, i2, 1, 2);
				
		//由于基本类型的值不能共享,其结果是i1和i2的元素将互不影响
		i1[0]=2;
		System.out.println("对于基本类型,改变复制源数组的元素并不影响目标数组元素\n"+
				"源数组与目标数组相关: "+ (i1[0]==i2[1]));
		
		//创建一个对象数组
		StringBuffer[] str1=new StringBuffer[3];
		str1[0]=new StringBuffer("a");
		str1[1]=new StringBuffer("b");
		str1[2]=new StringBuffer("c");
		
		//把引用类型的值从str1复制到str2的部分元素中:str1[0]->str2[1]
		StringBuffer[] str2=new StringBuffer[3];
		System.arraycopy(str1, 0, str2, 1, 2);
		
		//由于元素中存储的值是对相同StringBuffer对象的引,
		//因此源数组和目标数组元素依然相关
		str1[0]=str1[0].append("a");
		System.out.println("对于引用类型,数组元素中存储的值代表同一个对象的引用\n"+
				"源数组与目标数组相关: "+ (str1[0]==str2[1]));
		
		//创建二维数组
		int[][] array=new int[3][];
		array[0]=new int[]{5, 6};
		array[1]=new int[]{2, 3};
		array[2]=new int[]{7, 8};
		
		//多维数组执行arraycopy方法结果类似
		int[][] arrayCopy=new int[3][2];
		System.arraycopy(array, 0, arrayCopy, 0, 1);
		array[0][0]=10;
		System.out.println("对于多维数组,源数组与目标数组相关: "+ (array[0]==arrayCopy[0]));
		
		//clone方法只能实现单层复制
		int[][] arrayClone=(int[][])array.clone();		
		System.out.println("clone方法只能实现单层复制\n"+
				"array==arrayClone: "+	(array==arrayClone));
		System.out.println("array[0]==arrayClone[0]: "+
				(array[0]==arrayClone[0]));
		array[0][0]=50;
		System.out.println(arrayClone[0][0]);		
		
		//要自己实现深层复制
		for(int i=0; i<array.length; i++){
			arrayClone[i]=(int[])array[i].clone();
		}
		System.out.println("自己实现深层复制\n"+
				"array==arrayClone: "+(array==arrayClone));
		System.out.println("array[0]==arrayClone[0]: "+
				(array[0]==arrayClone[0]));
		array[0][0]=100;		
		System.out.println(arrayClone[0][0]);	
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -