数组

数组的使用

重转数组

package com.dong.www.array;

public class arrayDemo01 {
   public static void main(String[] args) {
       int[] d = {1,2,3,4,5,6,7,8,9};

       int[] revers = revers(d);
       printArrays(revers);

  }

   //数组重转
   public static int[] revers(int[] array){ //数组可以作为形参
       int[] result = new int[array.length]; //定义一个数组用于接收重转后的数组,其长度等于形参的长度。

       /*
       使用for循环来重转数组,将形参的第一个值赋给重转数组的最后一个值
        */
       for (int i = 0, j = array.length-1; i < array.length; i++,j--) {
           result[j] = array[i];

      }
       return result;
  }
   //打印数组
   public static void printArrays(int[] array){
       for (int i = 0; i < array.length; i++) {
           System.out.println(array[i]);
      }
  }
}

Arrays类讲解

package com.dong.www.array;

import java.util.Arrays;

public class arrayDemo02 {
   public static void main(String[] args) {
     int[] a = {12,45,5723,47,9,7123,35,768,76,734};
     
       System.out.println(Arrays.toString(a)); //Arrays.toString:打印数组

       Arrays.sort(a); //数组升序
       printArray(a);
  }
   
   public static void printArray(int[] array){
       for (int i = 0; i < array.length; i++) {
           if (i==0){
               System.out.print("[" + array[i] + ", ");
          }else if (i==array.length-1){
               System.out.print(array[i] + "]");
          }else {
               System.out.print(array[i] + ", ");
          }
      }
  }
}

稀疏数组

package com.dong.www.array;

public class arrayDemo04 {
   public static void main(String[] args) {
       //新建一个二维11*11的空白数组
       /* 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 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
        */
       int[][] array1 = new int[11][11];

       //给二维数组赋值
       /* 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 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 0 0
        */
       array1[1][2] = 1;
       array1[2][3] = 2;

       //打印数组
       for (int i = 0; i < array1.length; i++) {
           for (int j = 0; j < array1[i].length; j++) {
               System.out.print(array1[i][j] + "\t");
          }
           System.out.println();

      }

       //获取二维数组的有效值个数
       int sum = 0;
       for (int i = 0; i < 11; i++) {
           for (int j = 0; j < 11; j++) {
               if (array1[i][j] != 0){
                   sum++;
              }
          }
      }

       /*
       创建一个新数组来保存array1的2个有效数值
       11 11 2 |array1的行数 array1的列数 有效数值
       1   2   1 |有效值所在的行 有效值所在的列   有效值
       2   3   2 |有效值所在的行 有效值所在的列   有效值
        */
       int[][]array2 = new int[sum+1][3];
       //确定压缩数组的头部信息
       array2[0][0] = 11;
       array2[0][1] = 11;
       array2[0][2] = sum;

       //给压缩数组赋值
       int sum1 = 0;
       for (int i = 0; i < array1.length; i++) {
           for (int j = 0; j < array1[i].length; j++) {
               if (array1[i][j] != 0){
                   sum1++;
                   array2[sum1][0] = i;
                   array2[sum1][1] = j;
                   array2[sum1][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();

      }

       //还原压缩数组
       int[][] array3 = new int[array2[0][0]][array2[0][1]];
       for (int i = 1; i < array2.length; i++) {
               array3[array2[i][0]][array2[i][1]] = array2[i][2];
      }

       //打印还原数组
       for (int i = 0; i < array3.length; i++) {
           for (int j = 0; j < array3[i].length; j++) {
               System.out.print(array3[i][j] + "\t");
          }
           System.out.println();

      }



  }
}

 

 

posted @ 2021-05-18 10:02  牛油果柿子  阅读(170)  评论(0)    收藏  举报