稀疏数组
![在这里插入图片描述](https://img-blog.csdnimg.cn/db7de88509cc43ae8d0b134a7c2a660f.png)
package 二刷.array;
import java.util.ArrayList;
import java.util.List;
public class SparseArray {
public static int[][] generateArray(){
int[][] spareArray=new int[5][5];
spareArray[0][1] = 1;
spareArray[3][3] = 2;
spareArray[4][2] = 4;
return spareArray;
}
public static int[][] toSpareArray(int[][] array){
int num=0;
List list=new ArrayList();
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[0].length; j++) {
if(array[i][j]!=0){
list.add(new int[]{i, j, array[i][j]});
}
}
}
int[][] spareArray=new int[list.size()+1][3];
spareArray[0][0] = array.length;
spareArray[0][1] = array[0].length;
spareArray[0][2] = list.size();
for (int i = 0; i < list.size(); i++) {
int index=i+1;
int[] temp = (int[]) list.get(i);
spareArray[index][0]= temp[0];
spareArray[index][1]= temp[1];
spareArray[index][2]= temp[2];
}
return spareArray;
}
public static int[][] spareToArray(int[][] spareArray){
int[][] array=new int[spareArray[0][0]][spareArray[0][1]];
int count = 0;
outerloop:
for (int i = 0; i < array.length; i++) {
innerloop:
for (int j = 0; j < array[0].length; j++) {
if (count+1>=spareArray.length){
break outerloop;
}
if(i==spareArray[count+1][0] && j==spareArray[count+1][1]){
array[i][j] = spareArray[count+1][2];
count++;
}
}
}
return array;
}
public static void main(String[] args) {
int[][] array = generateArray();
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[0].length; j++) {
System.out.print(array[i][j]+"\t");
}
System.out.println("\n");
}
System.out.println("===============");
int[][] spareArray = toSpareArray(array);
for (int i = 0; i < spareArray.length; i++) {
for (int j = 0; j < spareArray[0].length; j++) {
System.out.print(spareArray[i][j]+"\t");
}
System.out.println("\n");
}
int[][] toArray = spareToArray(spareArray);
for (int i = 0; i < toArray.length; i++) {
for (int j = 0; j < toArray[0].length; j++) {
System.out.print(toArray[i][j]+"\t");
}
System.out.println("\n");
}
}
}