總結:1創(chuàng)建原始數(shù)組(二維數(shù)組)
2提取二維數(shù)組中的有效值(非零的值或者相同的值)
3創(chuàng)建稀疏數(shù)組
4遍歷稀疏數(shù)組,將有效值存放在稀疏數(shù)組中
public class arrayXS1 {
public static void main(String[] args) {
//第一步,輸出原始數(shù)組
int[][] array1 = new int[11][11];
array1[0][1] = 1;
array1[1][1] = 2;
for (int i = 0; i < array1.length; i++) {
for (int j = 0; j < array1[i].length; j++) {
System.out.print(array1[i][j]+"\t");
}
System.out.println();
}
//第二部,提取原始數(shù)組中的有效值
int sum = 0;
for (int i = 0; i < array1.length; i++) {
for (int j = 0; j < array1[i].length; j++) {
if (array1[i][j]!=0){
sum++;
}
}
}
System.out.println("原始數(shù)組有效值個數(shù):"+sum);
//第三步,創(chuàng)建稀疏數(shù)組
int[][] array2 = new int[sum+1][3];
array2[0][0] = 11;
array2[0][1] = 11;
array2[0][2] = sum;
//第四步,遍歷稀疏數(shù)組,將非0的值存放在稀疏數(shù)組中
int count = 0;
for (int i = 0; i < array1.length; i++) {
for (int j = 0; j < array1[i].length; j++) {
if (array1[i][j]!=0){
count++;
array2[count][0] = i;
array2[count][1] = j;
array2[count][2] = array1[i][j];
}
}
}
//第五步,輸出稀疏數(shù)組
System.out.println("輸出稀疏數(shù)組");
for (int[] i :array2){
for (int j:i){
System.out.print(j+"\t");
}
System.out.println();
}
//第六步,將稀疏數(shù)組還原成二維數(shù)組
int[][] array3 = new int[array2[0][0]][array2[0][1]];
for (int i = 1;i<array2.length;i++){
array3[array2[i][0]][array2[i][1]] = array2[i][2];
}
//第七步,輸出還原之后的二維數(shù)組
for (int[] i :array3){
for (int j:i){
System.out.print(j+"\t");
}
System.out.println();
}
}
}
公告
浙公網(wǎng)安備 33010602011771號