Java数据结构与算法----将稀疏数组保存到磁盘,并恢复


练习:

将稀疏数组保存到磁盘,并恢复


//稀疏数组保存到磁盘,并恢复
import java.io.*;
import java.io.OutputStreamWriter;
import java.io.InputStreamReader;
public class SparseArrSave{
	
	public static void main(String[] args){
		
	
		int[][] chessArr1 =new int[11][11];
		chessArr1[1][2]=1;
		chessArr1[2][3]=2;
		chessArr1[4][5]=2;
		chessArr1[4][6]=1;//添加一个数据
		int count=0;
		System.out.println("原始数组:");
		for(int[] row:chessArr1){
			for(int data:row){
				if(data!=0)
					count++;
				System.out.printf("%d\t",data);
			}
			System.out.println();
		}

		System.out.println("有效个数:"+count);
		int[][] sparseArr=new int[count+1][3];
		int num=1;
		sparseArr[0][0]=chessArr1.length;
		sparseArr[0][1]=chessArr1[0].length;
		sparseArr[0][2]=count;
		
		for(int i=0;i<11;i++){
			for(int j=0;j<11;j++){
				if(chessArr1[i][j]!=0){
					sparseArr[num][0]=i;
					sparseArr[num][1]=j;
					sparseArr[num][2]=chessArr1[i][j];
					num++;
				}
			}
		}

		System.out.println("稀疏数组:");
		System.out.println("row"+"\t"+"col"+"\t"+"val");
		for(int i=0;i

结果:

E:\java_code\datastructures_code\save>java SparseArrSave
原始数组:
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       2       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       2       1       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       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
有效个数:4
稀疏数组:
row     col     val
11      11      4
1       2       1
2       3       2
4       5       2
4       6       1
创建/打开文档
写入中………………
写入成功
读取中………………
读取成功
读取数据字符串为:
11,11,4,1,2,1,2,3,2,4,5,2,4,6,1,
还原稀疏数组:
row     col     val
11      11      4
1       2       1
2       3       2
4       5       2
4       6       1
还原原始数组:
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       2       0       0       0       0       0       0       0
0       0       0       0       0       0       0       0       0       0       0
0       0       0       0       0       2       1       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       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

总结:

  • 存进去是以字符串的数据类型
  • 出来时是char类型,读入到字符串缓存区中,最后恢复成字符串
  • 出来时是所有数据连在一起,所以需要进行拆分

你可能感兴趣的:(Java数据结构与算法)