int[][] x =new int[11][11];
x[1][2]=1;
x[2][3]=1;
System.out.println("输出原始数组:");
for (int[] a:x){
for (int z: a) {
System.out.print(z+"\t");
}
System.out.println();
}
//转换为稀疏数组保存
int sum = 0;
for (int i = 0; i < 11; i++) {
for (int i1 = 0; i1 < 11; i1++) {
if (x[i][i1]!=0){
sum++;
}
}
}
System.out.println("有效数值有"+sum+"个");
//创建一个稀疏数组的数组
int [][] arrays = new int[sum+1][3];
arrays[0][0] =11;
arrays[0][1] =11;
arrays[0][2] =sum;
int count = 0;
for (int i = 0; i <x.length ; i++) {
for (int j = 0; j <x[i].length ; j++) {
if (x[i][j]!=0){
count++;
arrays[count][0]=i;
arrays[count][1]=j;
arrays[count][2]=x[i][j];
}
}
}
//输出数组
System.out.println("输出稀疏数组:");
for (int i = 0; i < arrays.length; i++) {
System.out.println(arrays[i][0]+"\n"+arrays[i][1]+"\n"+arrays[i][2]+"\n");
}
//读取稀疏数组
int[][] array2 = new int[arrays[0][0]][arrays[0][1]];
//注意这里是从1开始的,因为第一行表头不用
for (int i=1;i< arrays.length;i++){
array2[arrays[i][0]][arrays[i][1]]=arrays[i][2];
}
System.out.println("输出原数组:");
for (int[] q:array2) {
for (int w:q) {
System.out.print(w+"\t");
}
System.out.println();
}
学习记录-稀疏数组
最新推荐文章于 2025-03-21 15:33:19 发布