public class array03 {
// 稀疏数组
public static void main(String[] args) {
// 原数组
int[][] array = new int[10][10];
array[0][2] = 1;
array[9][3] = 2;
System.out.println("输出原数组");
for (int[] ints : array) {
for (int another : ints ) {
System.out.print(another+"\t");
}
System.out.println();
}
/*for (int i = 0; i < array.length; i++) {
* }
*/
// 获取数组中有效值(非零值) >>>>> 转换为稀疏数组
System.out.println("获取有效值个数");
int num = 0;
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array.length; j++) {
if (array[i][j] != 0) {
num++;
}
}
}
System.out.println(num);
// 转为稀疏数组 (获取稀疏数组的值)
int[][] array2 = new int[num+1][3]; //第二个[]中为3,只需 行,列,值
array2[0][0] = 10;
array2[0][1] = 10;
array2[0][2] = num;
int count = 0;
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array.length; j++) {
if (array[i][j]!=0){
count++;
array2[count][0] = i;
array2[count][1] = j;
array2[count][2] = array[i][j];
}
}
}
// 输出稀疏数组
System.out.println("输出稀疏数组");
for (int i = 0; i < array2.length; i++) {
System.out.println(array2[i][0] +"\t"
+array2[i][1]+"\t"
+array2[i][2]+"\t");
}
// 还原
System.out.println("还原");
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];
}
for (int i = 0; i < array2[0][0]; i++) {
for (int j = 0; j < array2[0][1]; j++) {
System.out.print(array3[i][j]+"\t");
}
System.out.println();
}
}
}
JAVA 数组基础 (简) 稀疏数组
于 2021-08-27 21:47:23 首次发布
该博客介绍了如何将包含非零值的二维数组转换为稀疏数组,并详细展示了转换过程。首先,通过遍历原数组获取有效值(非零值)的数量,然后创建稀疏数组并填充行、列和值。接着,输出稀疏数组,并演示了如何从稀疏数组还原回原二维数组。整个过程涉及到数组操作和逻辑处理。
494

被折叠的 条评论
为什么被折叠?



