稀疏数组 - 稀疏数组转二维数组

public class OriginArray {
    public static void main(String[] args) {
        // 定义一个稀疏数组
        int[][] sparseArray = initSparseArray();
        System.out.println("======================稀疏数组======================");
        for (int[] row : sparseArray) {
            for (int data : row) {
                System.out.printf("%d\t", data);
            }
            System.out.println();
        }
        // 把稀疏数组转成二维数组
        int[][] originArray = transToOriginArray(sparseArray);
        System.out.println("======================二维数组======================");
        for (int[] row : originArray) {
            for (int data : row) {
                System.out.printf("%d\t", data);
            }
            System.out.println();
        }
    }

    private static int[][] transToOriginArray(int[][] sparseArray) {
        // 根据稀疏数组的第一行初始化二维数组
        int[][] originArray = initOriginArray(sparseArray[0]);
        // 根据稀疏数组第二行开始给二维数组赋值
        assembleOriginArray(originArray, sparseArray);
        return originArray;
    }

    private static void assembleOriginArray(int[][] originArray, int[][] sparseArray) {
        for (int i = 1; i < sparseArray.length; i++) {
            int row = sparseArray[i][0];
            int col = sparseArray[i][1];
            int value = sparseArray[i][2];
            originArray[row][col] = value;
        }
    }

    private static int[][] initOriginArray(int[] firstRow) {
        int row = firstRow[0];
        int col = firstRow[1];
        return new int[row][col];
    }

    private static int[][] initSparseArray() {
        int[][] sparseArray = new int[5][3];
        sparseArray[0][0] = 11;
        sparseArray[0][1] = 11;
        sparseArray[0][2] = 3;

        sparseArray[1][0] = 1;
        sparseArray[1][1] = 2;
        sparseArray[1][2] = 1;

        sparseArray[2][0] = 3;
        sparseArray[2][1] = 4;
        sparseArray[2][2] = 2;

        sparseArray[3][0] = 5;
        sparseArray[3][1] = 6;
        sparseArray[3][2] = 3;

        sparseArray[4][0] = 7;
        sparseArray[4][1] = 8;
        sparseArray[4][2] = 4;

        return sparseArray;
    }
}

  

======================稀疏数组======================
11	11	3	
1	2	1	
3	4	2	
5	6	3	
7	8	4	
======================二维数组======================
0	0	0	0	0	0	0	0	0	0	0	
0	0	1	0	0	0	0	0	0	0	0	
0	0	0	0	0	0	0	0	0	0	0	
0	0	0	0	2	0	0	0	0	0	0	
0	0	0	0	0	0	0	0	0	0	0	
0	0	0	0	0	0	3	0	0	0	0	
0	0	0	0	0	0	0	0	0	0	0	
0	0	0	0	0	0	0	0	4	0	0	
0	0	0	0	0	0	0	0	0	0	0	
0	0	0	0	0	0	0	0	0	0	0	
0	0	0	0	0	0	0	0	0	0	0	

Process finished with exit code 0

  

posted @ 2021-01-10 21:39  咕咚很困了  阅读(100)  评论(0)    收藏  举报