稀疏数组

package Array;
public class arrayDemo07 {
public static void main(String[] args) {
int[][] array1 = new int[11][11];
array1[1][2] = 1;
array1[2][3] = 2;
for (int[] ints : array1) {
for (int anInt : ints) {
System.out.print(anInt + " ");
}
System.out.println();
}
//计算有效的数据有几个
int sum=0;
for (int i = 0; i <11 ; i++) {
for (int j=0;j<11;j++){
if (array1[i][j]!=0){
sum++;
}
}
}
System.out.println("有效值个数:"+sum);
//创建一个稀疏数组
int[][] array2=new int[sum+1][3];
array2[0][0]=11;
array2[0][1]=11;
array2[0][2]=sum;
int count=0;
for (int i = 0; i < array1.length; i++) {
for (int j = 0; j < array1[1].length; j++) {
if(array1[i][j]!=0){
count++;
array2[count][0]=i;
array2[count][1]=j;
array2[count][2]=array1[i][j];
}
}
}
//输出稀疏数组
for (int i = 0; i <array2.length; i++) {
System.out.println(array2[i][0]+"\t"
+array2[i][1]+"\t"
+array2[i][2]+"\t");
}
}
}
/*输出:
0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0
0 0 0 2 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
有效值个数:2
11 11 2 (表示在11行11列额二维数组中,有2个有效值)
1 2 1 (表示第一个有效值在第2行第3列,值为1)
2 3 2 (表示第一个有效值在第3行第4列,值为2)
*/

posted on 2020-06-11 13:51  小白佳  阅读(84)  评论(0)    收藏  举报