package array;
public class ArrayTest01 {
public static void main(String[] args) {
//定义9*9的二维数字a1
int[][] a1=new int[9][9];
//给数组某些位置赋值
a1[0][0]=1;
a1[1][1]=1;
a1[2][2]=1;
a1[3][3]=1;
a1[4][4]=1;
a1[5][5]=1;
a1[6][6]=1;
a1[7][7]=1;
a1[8][8]=1;
//遍历数组a1
for (int i = 0; i < a1.length; i++) {//数组a1的行
for (int j = 0; j < a1.length; j++) {//数组a1的列
//输出数组a1
System.out.print(a1[i][j]+"\t");
}
//换行
System.out.println();
}
System.out.println("=================================");
int sum=0;//统计a1中的非零值个数
for (int i = 0; i < a1.length; i++) {//数组a1的行
for (int j = 0; j < a1.length; j++) {//数组a1的列
if(a1[i][j]!=0){
sum++;
}
}
}
System.out.println("非零值个数:"+sum);
System.out.println("=================================");
//定义系数数组
int[][] a2=new int[sum+1][3];
a2[0][0]=9;
a2[0][1]=9;
a2[0][2]=sum;
int temp=0;
for (int i = 0; i < a1.length; i++) {
for (int j = 0; j < a1[i].length ; j++) {
if (a1[i][j]!=0){
temp++;
a2[temp][0]=i;
a2[temp][1]=j;
a2[temp][2]=a1[i][j];
}
}
}
System.out.println("稀疏数组");
for (int i = 0; i < a2.length; i++) {//遍历a2数组
System.out.println(a2[i][0]+
"\t" +a2[i][1]+
"\t"+a2[i][2]);
}
System.out.println("=================================");
//还原稀疏数组
int[][] a3=new int[a2[0][0]][a2[0][1]];
for (int i = 1; i < a2.length; i++) {
a3[a2[i][0]][a2[i][1]]=a2[i][2];
}
System.out.println("还原后的数组");
for (int i = 0; i < a3.length; i++) {//数组a1的行
for (int j = 0; j < a3.length; j++) {//数组a1的列
//输出数组a3
System.out.print(a3[i][j]+"\t");
}
//换行
System.out.println();
}
}
}
Java稀疏数组
最新推荐文章于 2024-06-14 15:02:13 发布