//求里头出现非0数据的个数
int sum =0;
for(int i =0;i <11;i++) {
for(int j =0;j <11;j++) {
if(chessArr1[i][j] !=0) {
sum++;
}
}
}
//创建稀疏数组
int[][] array =new int[sum+1][3];
//第一行
array[0][0] =11;
array[0][1] =11;
array[0][2] =sum;
//剩下的行
int count =0;
for(int i=0;i<11;i++) {
for(int j=0;j<11;j++) {
if(chessArr1[i][j] !=0) {
count++;
array[count][0] =i;
array[count][1] =j;
array[count][2] =chessArr1[i][j];
}
}
}
for(int i=0;i<array.length;i++) {
System.out.printf("%d\t%d\t%d\t\n",array[i][0],array[i][1],array[i][2]);
}
//将稀疏数组存到map.data文件中
FileWriter fileWriter =new FileWriter("D:\\map.data");
//遍历稀疏数组并逐个 写入到文件中
for(int arr[]:array) {
for(int value:arr) {
fileWriter.write(value+"\t");
}
fileWriter.write("\n");
}
fileWriter.close();
//恢复稀疏数组
FileReader fileReader =new FileReader("D:\\map.data");
BufferedReader bfr =new BufferedReader(fileReader);
String line =null;
int[][] coverarray =null;
//读取稀疏数组的第一行
if((line =bfr.readLine())!=null) {
String[] a=line.split("\t");
coverarray =new int[Integer.valueOf(a[0])][Integer.valueOf(a[1])];
}
//读取稀疏数组的剩下行数
while((line =bfr.readLine())!=null) {
String[] a=line.split("\t");
coverarray [Integer.valueOf(a[0])][Integer.valueOf(a[1])] =Integer.valueOf(a[2]);
}
fileReader.close();