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