java怎么将二维数组转化为稀疏数组
发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,本篇内容主要讲解"java怎么将二维数组转化为稀疏数组",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"java怎么将二维数组转化为稀疏数组"吧!特点1、它可
千家信息网最后更新 2025年01月17日java怎么将二维数组转化为稀疏数组
本篇内容主要讲解"java怎么将二维数组转化为稀疏数组",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"java怎么将二维数组转化为稀疏数组"吧!
特点
1、它可以压缩数据,减少内存空间的使用。
过程
2、记录数组元素的坐标和值。
3、稀疏数组有3列,分别是行、列、值,行数是原数组不同值的数加1;
array[0]记录一组行数和列数,以及不同值的数;
然后每行记录一个值在原数组的行列下标记和自己的值。
实例
public static void main(String[] args) { //创建一个原始的二维数组 //0:没有棋子,1:黑子,2:白子 int chessArr1[][] = new int[11][11]; //下面先固定二维数组的元素,后面可优化~ chessArr1[1][2] = 1; chessArr1[2][3] = 2; chessArr1[4][5] = 2; //输出原始的二维数组: System.out.println("原始的二维数组:"); printArray(chessArr1); //下面将二维数组转化为稀疏数组 //1.先遍历二维数组,得到非0数据的个数 int sum = 0; for (int i = 0; i < 11; i++) { for (int j = 0; j < 11; j++) { if (chessArr1[i][j] != 0) { sum++; } } } //2.创建对应的稀疏数组 int sparesArr[][] = new int[sum + 1][3]; //给稀疏数组赋值 sparesArr[0][0] = 11; sparesArr[0][1] = 11; sparesArr[0][2] = sum; //遍历二维数组,将非0的值存放在sparesArr中 int count = 0;//count 用于记录是第几个非0数据 for (int i = 0; i < 11; i++) { for (int j = 0; j < 11; j++) { if (chessArr1[i][j] != 0) { count++; sparesArr[count][0] = i; sparesArr[count][1] = j; sparesArr[count][2] = chessArr1[i][j]; } } } //输出稀疏数组的形式 System.out.println(); System.out.println("得到的稀疏数组为:"); printArray(sparesArr); System.out.println(); //下面将稀疏数组恢复成二维数组 //先读取稀疏数组的第一行元素,根据其数据,创建原始的二维数组 int chessArr2[][] = new int[sparesArr[0][0]][sparesArr[0][1]]; //读取稀疏数组后几行的元素(从第二行开始),并赋值给原始的二维数组即可 for (int i = 1; i < sparesArr.length; i++) { chessArr2[sparesArr[i][0]][sparesArr[i][1]] = sparesArr[i][2]; } //输出恢复后的二维数组 System.out.println(); System.out.println("恢复后的二维数组"); printArray(chessArr2);} //打印数组public static void printArray(int[][] array) { for (int i = 0; i < array.length; i++) { for (int j = 0; j < array[0].length; j++) { System.out.printf("%d\t", array[i][j]); } System.out.println(); }}
到此,相信大家对"java怎么将二维数组转化为稀疏数组"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
数组
二维
稀疏
原始
元素
数据
j++
输出
不同
内容
学习
实用
更深
一行
下标
个数
兴趣
内存
坐标
实例
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
绥化天气预报软件开发
数据库辅助文件的个数
最新赌博软件开发
信息网络安全指导方针
数据库连接字符串sid
单片机编程也算是软件开发吧
学校网络安全承诺宣誓
服务器又来的
微商软件开发联系方式
静安区大型网络技术厂家价格
ibm服务器灯信号
学网络安全专业需要考证吗
网络安全个人保密责任承诺书
网络安全发展的基本特征
孝感市网络安全宣传活动
服务器h3c
程序软件开发前景如何
上海驿游网络技术
windows软件开发团队
网络技术学习文案励志
米内网高级数据库登录
计算机软件开发商是什么职业
嵌入式 栅格地图软件开发
114域名服务器在哪
小学防沉迷网络安全教育
计算机网络技术学习类奖项
杭州电信服务器选择
怀旧服哪个服务器可以下载
网络安全事故定性
数据库结构的基本构架