Java稀疏数组
package aStudy
.day1
;
public class data01 {
public static void main(String
[] args
) {
int[][] arr
= new int[10][10];
arr
[2][2] = 2;
arr
[3][3] = 3;
arr
[4][4] = 4;
System
.out
.println("原始二维数组:");
for (int i
= 0; i
< arr
.length
; i
++) {
for (int j
= 0; j
< arr
.length
; j
++) {
System
.out
.printf("%d\t",arr
[i
][j
]);
}
System
.out
.println();
}
int sum
= 0;
for (int i
= 0; i
< arr
.length
; i
++)
for (int j
= 0; j
< arr
.length
; j
++)
if (arr
[i
][j
] != 0) sum
++;
System
.out
.println("获取原始数组中有效数据个数:"+sum
);
int[][] arrMini
= new int[sum
+1][3];
arrMini
[0][0] = 10;
arrMini
[0][1] = 10;
arrMini
[0][2] = sum
;
System
.out
.println("赋值个稀疏数组:");
int count
=0;
for (int i
= 0; i
< arr
.length
; i
++)
for (int j
= 0; j
< arr
.length
; j
++)
if (arr
[i
][j
] != 0){
count
++;
arrMini
[count
][0] = i
;
arrMini
[count
][1] = j
;
arrMini
[count
][2] = arr
[i
][j
];
}
System
.out
.println("稀疏数组:");
for (int i
= 0; i
< arrMini
.length
; i
++) {
System
.out
.printf("%d\t%d\t%d\t", arrMini
[i
][0], arrMini
[i
][1], arrMini
[i
][2]);
System
.out
.println();
}
int x
,y
;
x
= arrMini
[0][0];
y
= arrMini
[0][1];
int[][] reArr
= new int[x
][y
];
for (int i
= 1; i
< arrMini
.length
; i
++)
reArr
[arrMini
[i
][0]][arrMini
[i
][1]] = arrMini
[i
][2];
System
.out
.println("恢复后的二维数组");
for (int[] row
: reArr
) {
for (int data
: row
) {
System
.out
.printf("%d\t",data
);
}
System
.out
.println();
}
}
}
转载请注明原文地址:https://blackberry.8miu.com/read-44781.html