稀疏数组

稀疏数组

package array;
//稀疏数组
public class ArrayDemo04 {
   public static void main(String[] args) {
       //1.创建一个11X11的棋盘,0代表没有棋子,1代表黑棋,2代表白棋
       int[][] array1= new int[11][11];
       array1[1][2]=1;
       array1[2][3]=2;
       for (int[] ints : array1) {
           for (int anInt : ints) {
               System.out.print(anInt+"\t");

          }
           System.out.println();
      }
       System.out.println("=========================");
       int sum=0;
       for (int i = 0; i <array1.length; i++) {
           for (int j = 0; j <array1[i].length; j++) {
               if(array1[i][j]!=0){
                 sum++;
              }
          }
      }
       //创建稀疏数组
       int[][] array2 = new int[sum+1][3];
       array2[0][0]=11;
       array2[0][1]=11;
       array2[0][2]=sum;
       int count=0;
       for(int i =0;i<array1.length;i++){
           for (int j = 0; j <array1[i].length; j++) {
           if(array1[i][j]!=0){
               count++;
               array2[count][0]=i;
               array2[count][1]=j;
               array2[count][2]=array1[i][j];
              }
          }
      }
       for (int i = 0; i <array2.length; i++) {
           for (int j = 0; j <array2[i].length ; j++) {
               System.out.print(array2[i][j]+"\t");
          }
           System.out.println("");
      }
  }
}

 行数列数有效值数
  11 11 2
  1 2 1
  2 3 2
posted @ 2021-09-13 16:50  阿林学习笔记  阅读(214)  评论(0)    收藏  举报