稀疏数组
2021-03-22 16:25
标签:data 存在 文件 sar string fileread 程序 实现 null ? 1.记录数组一共有几行几列,有几个不同的值 ? 2.把具有不同值的元素的行列及值记录在一个小的规模的数组中,从而缩小程序的规模 1.记录数组一共有几行几列,有几个不同的值 ? 我们可以清楚的看到,数组由原来的6x7,转化为稀疏数组后只有3x8了 1.使用稀疏数组,来保留类似前面的二维数组(棋盘、地图等等) 1.将稀疏数组保存在磁盘上,比如map.data 2.恢复原来的数组时,读取map.data进行恢复。 稀疏数组 标签:data 存在 文件 sar string fileread 程序 实现 null 原文地址:https://www.cnblogs.com/dabbie/p/13874987.html先看一个实际的需求
基本介绍
稀疏数组的处理方法是:
2.把具有不同值的元素的行列及值记录在一个小的规模的数组中,从而缩小程序的规模举例说明
应用实例
2.把稀疏数组存盘,并且可以从新恢复原来的二维数组数
3.整体思路分析
1.遍历原始的二维数组,得到有效数据的个数sum
2.根据sum就可以创建稀疏数组sparseArr int[sum+1][3]
3.将二维数组的有效数据存入到稀疏数组。
1.先读取稀疏数组的第一行,根据第一行的数据,创建原始的二维数组
2.在读取稀疏数组后几行的数据,并赋给 原始的二维数组即可代码实现
//创建原始数组
int chessArr[][] = new int[11][11];
/*模拟存储棋盘数据
* 落子位置:
* 1:黑子
* 2:白字
* 0:没有棋子
* */
chessArr[1][2] = 1;
chessArr[2][3] = 2;
//展示原始数组
System.out.println("原始数组:");
for (int[] row : chessArr) {
for (int data : row) {
System.out.printf("%d\t",data);
}
System.out.println();
}
//统计原始数组的有效数据个数
int sum = 0;
for (int i = 0; i list = new ArrayList();
//新建一个字符串来保存读取的每一行
String line = "";
while((line = br.readLine())!=null){
list.add(line);
}
br.close();
//新建一个稀疏数组
int newSparseArr[][] = new int[list.size()][3];
for (int i = 0; i
上一篇:关于Springboot的核心配置文件中字符编码集问题
下一篇:多线程