Day06

Day06

数组

  • 数组是相同类型数据的有序集合

public class ArrayDemo01 {
   public static void main(String[] args) {
       int[] num = new int[10];
       num[0] = 1;
       num[1] = 2;
       num[2] = 3;
       num[3] = 4;
       num[4] = 5;
       num[5] = 6;
       num[6] = 7;

       System.out.println(num[5]);
       System.out.println(num[7]);

       int sum = 0;
       for (int i = 0;i< num.length;i++){
           sum = sum + num[i];
      }
       System.out.println(sum);
  }
}
  • 静态初始化

//静态初始化:创建+赋值
int[] a = {1,2,3,4,5,6};
  • 动态初始化

//动态初始化:包含默认初始化
int[] b = new int[10];
b[0] = 5;
b[1] = 2;

数组的四个基本特点

  • 其长度是确定的。数组一旦被创建,它的大小就是不可改变的

  • 其元素必须是相同类型

  • 数组中元素可以是任何数据类型,包括基本类型和引用类型

  • 数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。

     

public class ArrayDemo02 {
   public static void main(String[] args) {
       int []arrays = {1,2,3,4,5,6};

       int[] reverse = reverse(arrays);
       printArrays(reverse);
  }

   //翻转数组元素
   public static int[] reverse(int[] arrays){
       int[] result = new int[arrays.length];

       for (int i = 0,j=arrays.length-1;i<arrays.length;i++,j--){
           result[j] = arrays[i];
      }
       return result;
  }

   //打印数组元素
   public static void printArrays(int[] arrays){
       for (int i = 0;i<arrays.length;i++) {
           System.out.print(arrays[i]+" ");
      }
  }
}

 

冒泡排序

(总共有8大排序)

两层循环,外层冒泡轮数,里层依次比较。

时间复杂度O(n2)

 

稀疏数组

public class ArrayDemo04 {
   public static void main(String[] args) {
       int[][] array = new int[11][11];
       array[1][2] = 1;
       array[2][3] = 2;
       int sum = 0;

       for (int[] ints : array) {
           for (int anInt : ints) {
               System.out.print(anInt + "\t");
               if (anInt != 0) {
                   sum++;
              }
          }
           System.out.println();
      }

       System.out.println("=========================================");

       int count = 0;
       int[][] array2 = new int[sum + 1][3];
       array2[0][0] = 11;
       array2[0][1] = 11;
       array2[0][2] = sum;

       for (int i = 0; i < array.length; i++) {
           for (int j = 0; j < array[i].length; j++) {
               if (array[i][j] != 0) {
                   count++;
                   array2[count][0] = i;
                   array2[count][1] = j;
                   array2[count][2] = array[i][j];
              }
          }
      }
       for (int[] ints : array2) {
           for (int anInt : ints) {
               System.out.print(anInt + "\t");
          }
           System.out.println();
      }

       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[] ints : array3) {
           for (int anInt : ints) {
               System.out.print(anInt + "\t");
          }
           System.out.println();


      }

  }
}

 

posted @ 2021-03-10 18:02  Boom、  阅读(60)  评论(0)    收藏  举报