java旋转二维数组实例
本文实例讲述了java旋转二维数组的操作,分享给大家供大家参考。具体实现方法如下:
packagetest; /* * 1 2 3 4 5 * 16 17 18 19 6 * 15 24 25 20 7 * 14 23 22 21 8 * 13 12 11 10 9 * * 写一方法,打印等长的二维数组,要求从1开始的自然数由方阵的最外圈向内螺旋方式地顺序排列。 **/ publicclassTest6 { publicstaticvoidmain(String[]args) { arraynum(4); } //便于改代码..输入不同y值输出不同的二维数列 privatestaticvoidarraynum(intx) { int[][]arr=newint[x][x]; intlen=arr.length,max=0,count=0; specArr(arr,len,max,count); arrprint(arr); } //高级for输出打印用的 privatestaticvoidarrprint(int[][]arr) { for(int[]in:arr) { for(intt:in) { System.out.print(t+"\t"); } System.out.println(); } } privatestaticvoidspecArr(int[][]arr,intlen,intmax,intcount) { while(len>0) { intj=0; for(intindex=0;index<(len-1)*4;index++) { if(index<len-1) arr[0+count][index+count]=++max; elseif(index<2*(len-1)) arr[count+j++][arr.length-1-count]=++max; elseif(index<3*(len-1)) arr[arr.length-1-count][(j--)+count]=++max; elseif(index<4*(len-1)) arr[arr.length-1-(j++)-count][0+count]=++max; } if(len==1) { arr[arr.length/2][arr.length/2]=max+1; }//注意到当y值为奇数时,会有循环到n=1的情况,需要补进数组最中间值 count++; len=len-2; } } }
希望本文所述对大家的Java程序设计有所帮助。