package suanfa; public class xishuarr { public static void main(String[] args) { int chessArr1[][]=new int[11][11]; int sum=0; chessArr1[1][2]=1; chessArr1[2][3]=2; chessArr1[3][5]=1; chessArr1[5][7]=2; System.out.println("二维数组"); for(int[] row:chessArr1) { for(int data:row) { if(data!=0) { sum++; } System.out.printf("%d\t",data); } System.out.println(); } int chessArr2[][]=new int[sum+1][3]; chessArr2[0][0]=11; chessArr2[0][1]=11; chessArr2[0][2]=sum; int cnt=0; for(int i=0;i<chessArr1.length;i++) { for(int j=0;j<chessArr1.length;j++) { if(chessArr1[i][j] !=0){ ++cnt; chessArr2[cnt][0]=i; chessArr2[cnt][1]=j; chessArr2[cnt][2]=chessArr1[i][j]; } } } System.out.println(); System.out.println("稀疏数组"); for(int[] row:chessArr2) { for(int data:row) { System.out.printf("%d\t",data); } System.out.println(); } System.out.println("稀疏数组转为二维数组"); int x=chessArr2[0][0];//行数 int y=chessArr2[0][1];//列数 int count=chessArr2[0][2];//值的个数 int[][] arr=new int[x][y]; for(int i=1;i<chessArr2.length;i++) { x=chessArr2[i][0];//行数 y=chessArr2[i][1];//列数 count=chessArr2[i][2];//值的个数 arr[x][y]=count; } for(int[] row:arr) { for(int data:row) { System.out.printf("%d\t",data); } System.out.println(); } } }