打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
稀疏数组 - 二维数组转稀疏数组
public class SparseArray {    public static void main(String[] args) {        //1 先定义一个二维数组,11x11的棋盘,0表示没有棋子,1表示白棋,2表示黑棋        int[][] chessboard = initChessboard();        System.out.println("======================初始化二维数组======================");        for (int[] row : chessboard) {            for (int data : row) {                System.out.printf("%d\t", data);            }            System.out.println();        }        //2 转稀疏数组        int[][] sparseArray = transToSparseArray(chessboard);        System.out.println("======================转化后的稀疏数组======================");        for (int[] row : sparseArray) {            for (int data : row) {                System.out.printf("%d\t", data);            }            System.out.println();        }    }    private static int[][] transToSparseArray(int[][] chessboard) {        // 1. 获取二维数组有多少个值        int sum = getSum(chessboard);        // 2. 创建稀疏数组        int[][] sparseArray = initSparseArray(sum, chessboard);        // 3. 给稀疏数组赋值        assembleSparseArray(sparseArray, chessboard);        return sparseArray;    }    private static void assembleSparseArray(int[][] sparseArray, int[][] chessboard) {        int count = 0;        int row = chessboard.length;        int col = chessboard[0].length;        for (int i = 0; i < row; i  ) {            for (int j = 0; j < col; j  ) {                if (chessboard[i][j] != 0) {                    count  ;                    sparseArray[count][0] = i;                    sparseArray[count][1] = j;                    sparseArray[count][2] = chessboard[i][j];                }            }        }    }    private static int[][] initSparseArray(int sum, int[][] chessboard) {        int[][] sparseArray = new int[sum   1][3];        sparseArray[0][0] = chessboard.length;        sparseArray[0][1] = chessboard[0].length;        sparseArray[0][2] = sum;        return sparseArray;    }    private static int getSum(int[][] chessboard) {        int sum = 0;        int row = chessboard.length;        int col = chessboard[0].length;        for (int i = 0; i < row; i  ) {            for (int j = 0; j < col; j  ) {                if (chessboard[i][j] != 0) {                    sum  ;                }            }        }        return sum;    }    private static int[][] initChessboard() {        int[][] chessboard = new int[11][11];        chessboard[1][2] = 1;        chessboard[2][3] = 2;        return chessboard;    }}
======================初始化二维数组======================0000000000000100000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000======================转化后的稀疏数组======================11112121232Process finished with exit code 0
来源:https://www.icode9.com/content-4-816751.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
稀疏数组
谈一下稀疏数组
二维数组一
二维数组
二维数组的表现及应用
Java中规则与不规则的二维数组的创建以及遍历方式
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服