public class ArrayDemo01 {
public static void main(String[] args) {
int[][] num;//声明一个int类型二维数组num
num = new int[11][12];//创建一个11行12列的二维数组
num[1][2]=1;
num[2][3]=2;
//输出原始数组
System.out.println("输出原始数组");
printarray(num);
//输出稀疏数组
//第一步 获取有效数值数量
int valuenum = getvaluenum(num);
//第二步 声明并且创建一个int类型稀疏数组
int[][] newarray = new int[valuenum+1][3];
newarray[0][0] = 11;
newarray[0][1] = 12;
newarray[0][2] = valuenum;
//将原始数组的非零值记录在稀疏数组中,方法2选1
// int count =1;
// int count1 =0;
// for(int i[]:num){
// int count2 =0;
// for (int i1 : i) {
// if(i1!=0){
// newarray[count][2] = i1;
// newarray[count][1] = count2;
// newarray[count][0] = count1;
// count++;
// }
// count2++;
// }
// count1++;
// }
int count =1;
for (int i = 1; i <num.length ; i++) {
for (int j = 0; j <num[i].length ; j++) {
if(num[i][j]!=0){
newarray[count][0] = i;
newarray[count][1] = j;
newarray[count][2] = num[i][j];
count++;
}
}
}
//输出稀疏数组
System.out.println("输出稀疏数组");
System.out.println("行\t列\t有效值");
printarray(newarray);
//将稀疏数组还原为初始数组
int[][] oldarray =new int[newarray[0][0]][newarray[0][1]];
for(int i = 1;i<=valuenum;i++) {
oldarray[newarray[i][0]][newarray[i][1]] = newarray[i][2];
}
//输出还原后的初始数组
System.out.println("输出还原后的初始数组");
printarray(oldarray);
//判断初始数组和还原后的初始数组是否相等
boolean b =judge(num,oldarray);
System.out.println("初始数组是否与还原后的初始数组相等? :"+b);
}
public static void printarray(int[][] num){
for (int[] i : num) {
for (int i1 : i) {
System.out.print(i1+"\t");
}
System.out.println();
}
}
public static int getvaluenum(int[][] num){
int valuenum=0;
for (int[] ints : num) {
for (int anInt : ints) {
if(anInt!=0) {
valuenum++;
}
}
}
System.out.println("原始有效数字的数量为 "+valuenum);
return valuenum;
}
public static boolean judge(int[][]num,int[][] num1){
boolean b = true;
for (int i = 0; i <num.length ; i++) {
for (int j = 0; j < num[i].length; j++) {
if(num[i][j]!=num1[i][j]){
b = false;
}
}
}
return b;
}
}
operation result:
- Regarding the judgment of whether the contents of two two-dimensional arrays are equal
Use the equals method under Arrays to not judge whether the contents of two two-dimensional arrays are equal, but you can judge whether two one-dimensional arrays are equal