System.out.println("===============================================");//转换为稀疏数组保存。//获取有效值的个数。int sum =0;for(int i =0; i <11; i++){for(int j =0; j <11; j++){if(arrays[i][j]!=0){
sum++;}}}System.out.println("有效值个数为:"+sum);
矩阵稀疏操作及打印
int[][] array_01 =newint[sum+1][3];
array_01[0][0]=11;//行的范围
array_01[0][1]=11;//列的范围
array_01[0][2]=sum;//有效数字个数int count =0;for(int i =0; i <11; i++){for(int j =0; j <11; j++){if(arrays[i][j]!=0){
count++;
array_01[count][0]=i;
array_01[count][1]=j;
array_01[count][2]=arrays[i][j];}}}System.out.println("稀疏过后的矩阵:");for(int[] array : array_01){for(int i : array){System.out.print(i+"\t");}System.out.println();}System.out.println("===============================================");
矩阵的还原及打印
System.out.println("稀疏数组还原。");int[][] arrays_2 =newint[array_01[0][0]][array_01[0][1]];int column =0;//列int row =0;//行int value =0;//值int j=0;for(int i =1; i <= array_01[0][2]; i++){
row = array_01[i][j];
j++;
column = array_01[i][j];
j++;
arrays_2[row][column]=array_01[i][j];
j =0;}System.out.println("===============================================");System.out.println("还原的矩阵:");for(int[] array : arrays_2){for(int i : array){System.out.print(i+"\t");}System.out.println();}
完整代码
packagecom.Macong.array;importjava.util.Arrays;publicclassArrayDemo_06{publicstaticvoidmain(String[] args){//创建一个二维数组,11*11 0没有棋子。1:黑棋。2:白棋。int[][] arrays =newint[11][11];
arrays[1][2]=1;//2行3列放黑棋
arrays[2][3]=2;//3行4列放白棋System.out.println("输出原始的数组:");// System.out.println(Arrays.toString(arrays));//数组名字.for。跳出增强的for//先按照行来取一维数组的名字,再将每个一维数组遍历。看成数组的嵌套。for(int[] array : arrays){for(int i : array){System.out.print(i+"\t");}System.out.println();}System.out.println("===============================================");//转换为稀疏数组保存。//获取有效值的个数。int sum =0;for(int i =0; i <11; i++){for(int j =0; j <11; j++){if(arrays[i][j]!=0){
sum++;}}}System.out.println("有效值个数为:"+sum);System.out.println("===============================================");int[][] array_01 =newint[sum+1][3];
array_01[0][0]=11;//行的范围
array_01[0][1]=11;//列的范围
array_01[0][2]=sum;//有效数字个数int count =0;for(int i =0; i <11; i++){for(int j =0; j <11; j++){if(arrays[i][j]!=0){
count++;
array_01[count][0]=i;
array_01[count][1]=j;
array_01[count][2]=arrays[i][j];}}}System.out.println("稀疏过后的矩阵:");for(int[] array : array_01){for(int i : array){System.out.print(i+"\t");}System.out.println();}System.out.println("===============================================");System.out.println("稀疏数组还原。");int[][] arrays_2 =newint[array_01[0][0]][array_01[0][1]];int column =0;//列int row =0;//行int value =0;//值int j=0;for(int i =1; i <= array_01[0][2]; i++){
row = array_01[i][j];
j++;
column = array_01[i][j];
j++;
arrays_2[row][column]=array_01[i][j];
j =0;}System.out.println("===============================================");System.out.println("还原的矩阵:");for(int[] array : arrays_2){for(int i : array){System.out.print(i+"\t");}System.out.println();}}}