欢迎来到天天文库
浏览记录
ID:6578932
大小:50.00 KB
页数:8页
时间:2018-01-18
《java数组复制的方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数组的复制方法现在看来至少有四个思路:1使用循环结构这种方法最灵活。唯一不足的地方可能就是代码较多2使用Object类的clone()方法,这种方法最简单,得到原数组的一个副本。灵活形也最差。效率最差,尤其是在数组元素很大或者复制对象数组时。3使用Systems的arraycopy这种方法被告之速度最快,并且灵活性也较好,可以指定原数组名称、以及元素的开始位置、复制的元素的个数,目标数组名称、目标数组的位置。4 Arrarys类的copyOf()方法与copyOfRange()方法可实现对数组的复制。例一:publicclassCopyTester{/***@paramargs
2、*/publicstaticvoidmain(String[]args){int[][]nums={{10,20},{30,40,50},{60}};inti,j;int[][]result=newint[nums.length][];//一个一个拿,一个一个输出for(i=0;i3、println();}//每行复制输出for(i=0;i4、;jjavaCopyTester102030405060[10,20][30,40,50][60]----------------1020304050601020304050105、0由输出可以看出,修改result[0][2]的值并没有影响原数组。例二:importjava.util.Arrays;publicclassarraycopy{/***@authorx521*@createdate2008-5-21*一维数组的拷贝---浅拷贝*/publicstaticvoidmain(String[]args){copyarray();copyobject();}publicstaticvoidcopyarray(){int[]a=newint[5];int[]b=newint[6];a[0]=12;a[1]=45;a[2]=90;a[3]=100;a[46、]=160;for(intaa:a){System.out.print(aa+"");}System.out.println("---");System.arraycopy(a,0,b,1,a.length);for(intbb:b){System.out.print(bb+"");}System.out.println();System.out.println("************");a[4]=200;//这个修改不会影响b[4]for(intbbb:b){System.out.print(bbb+"");}System.out.println("******7、*******");for(intaaa:a){System.out.print(aaa+"");}System.out.println("****************");}publicstaticvoidcopyobject(){testcopy[]tc1=newtestcopy[2];testcopy[]tc2=newtestcopy[2];tc1[0]=newtestcopy();tc1[1]=newtestcopy();tc1[0].setName("h1");tc1[1]
3、println();}//每行复制输出for(i=0;i4、;jjavaCopyTester102030405060[10,20][30,40,50][60]----------------1020304050601020304050105、0由输出可以看出,修改result[0][2]的值并没有影响原数组。例二:importjava.util.Arrays;publicclassarraycopy{/***@authorx521*@createdate2008-5-21*一维数组的拷贝---浅拷贝*/publicstaticvoidmain(String[]args){copyarray();copyobject();}publicstaticvoidcopyarray(){int[]a=newint[5];int[]b=newint[6];a[0]=12;a[1]=45;a[2]=90;a[3]=100;a[46、]=160;for(intaa:a){System.out.print(aa+"");}System.out.println("---");System.arraycopy(a,0,b,1,a.length);for(intbb:b){System.out.print(bb+"");}System.out.println();System.out.println("************");a[4]=200;//这个修改不会影响b[4]for(intbbb:b){System.out.print(bbb+"");}System.out.println("******7、*******");for(intaaa:a){System.out.print(aaa+"");}System.out.println("****************");}publicstaticvoidcopyobject(){testcopy[]tc1=newtestcopy[2];testcopy[]tc2=newtestcopy[2];tc1[0]=newtestcopy();tc1[1]=newtestcopy();tc1[0].setName("h1");tc1[1]
4、;jjavaCopyTester102030405060[10,20][30,40,50][60]----------------102030405060102030405010
5、0由输出可以看出,修改result[0][2]的值并没有影响原数组。例二:importjava.util.Arrays;publicclassarraycopy{/***@authorx521*@createdate2008-5-21*一维数组的拷贝---浅拷贝*/publicstaticvoidmain(String[]args){copyarray();copyobject();}publicstaticvoidcopyarray(){int[]a=newint[5];int[]b=newint[6];a[0]=12;a[1]=45;a[2]=90;a[3]=100;a[4
6、]=160;for(intaa:a){System.out.print(aa+"");}System.out.println("---");System.arraycopy(a,0,b,1,a.length);for(intbb:b){System.out.print(bb+"");}System.out.println();System.out.println("************");a[4]=200;//这个修改不会影响b[4]for(intbbb:b){System.out.print(bbb+"");}System.out.println("******
7、*******");for(intaaa:a){System.out.print(aaa+"");}System.out.println("****************");}publicstaticvoidcopyobject(){testcopy[]tc1=newtestcopy[2];testcopy[]tc2=newtestcopy[2];tc1[0]=newtestcopy();tc1[1]=newtestcopy();tc1[0].setName("h1");tc1[1]
此文档下载收益归作者所有