数组(array)是一种用于存储多个相同类型数据的存储模型

数组定义格式:

:::info

  • 格式一:
    • 数据类型[] 变量名 int[] arr
    • 定义了一个int类型的数组,数组名是arr
  • 格式二:
    • 数据类型 变量名[] int arr[]
    • 定义了一个int类型的变量,变量名是arr数组 :::

数组初始化:

:::info

概述:

  • java中数组必须先初始化才能使用[就是为数组中数组元素分配内存空间,并为每个数组元素赋值]

    数组初始化方式:

  • 动态初始化:初始化时只指定数组长度,由系统为数组分配初始值

    • 格式:数据类型[] 变量名 = new 数据类型[类型长度];
  • 静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度
    • 格式:数据类型[] 变量名 = new 数据类型[]{数据1,数据2,…};
    • 简化格式:数据类型[] 变量名 = {数据1,数据2,…}; :::

数组常见操作:

:::info

遍历:

  • for(int i = 0; i < 数组名.length; i++ ) {}

    获取最值:

  1. int[] arr = {34, 89, 56, 12};

思路:
定义一个变量,用于保存最值

  1. int max;

获取数组第一个数据作为变量的初始值

  1. int max = arr[0];

与数组中剩余的数据逐个比对,每次将最值保存到变量中

  1. for (int i = 1; i < arr.length; i++) {
  2. if (arr[i] > max) {
  3. max = arr[i];
  4. }
  5. }

输出 :::

Arrays

:::info

  • 数组从小到大排序:Arrays.sort()
  • 数组以字符串的形式输出:Arrays.toString() :::
    1. public static void main(String[] args) {
    2. double sum = 0;
    3. double a[] = {3, 5, 1, 3.4, 2, 50};
    4. for (int i = 0; i < a.length; i++) {
    5. System.out.println(a[i]);
    6. sum = sum + a[i];
    7. }
    8. System.out.println("和:" + sum);
    9. System.out.println("均:" + sum/6);
    10. }
    public static void main(String[] args) {
      int a[] = new int[4];    
      Random ran = new Random();
      System.out.print("四个随机数为:");
      for (int i = 0; i < a.length; i++) {        //生成四个100以内的随机数
          a[i] = ran.nextInt(100);
          System.out.print( a[i] + "\t");
      }
      System.out.println("\t");
      for (int x = 1; x < a.length; x++) {        //冒泡排序,外循环控制趟数
          for (int y = 0; y < a.length - x; y++) {        //内循环控制每趟排序次数
              if (a[y] > a[y + 1]) {      //相邻两个数比较,将大的以下标排至右边
                  int temp = a[y];
                  a[y] = a[y + 1];
                  a[y + 1] = temp;
              }
          }
      }
      System.out.print("随机数从小到大排序:");
      for (Integer array: a) {            //增强for循环,遍历a[]
          System.out.print(array+"\t");
      }
      System.out.println("\t");
      System.out.println("其中最大值为:" + a[3]);
      System.out.println("最小值为:" + a[0]);
    }
    
    int a[] = new int[5];
    Random ran = new Random();
    for (int i = 0; i < a.length; i++) {
      a[i] = ran.nextInt(11) + 10;
    }
    System.out.println(Arrays.toString(a));     //把数组转变为字符串
    Arrays.sort(a);     //对数组元素从小到大排序 返回值为void
    System.out.println("min" + a[0] + ", max" + a[a.length - 1]);
    
    int[] arr = {12, 34, 56, 78, 90, 01};
    int num = 0;
    for (int fort = 0, queen = arr.length - 1; 
       fort < queen; fort ++ ,queen --) {
      num = arr[fort];
      arr[fort] = arr[queen];
      arr[queen] = num;
    }
    System.out.println(Arrays.toString(arr));
    
    public static void main(String[] args) {
      int[][] YH = new int[10][];
      for (int i = 0; i < YH.length; i++) {
          YH[i] = new int[i + 1];
          for (int j = 0; j < YH[i].length; j++) {
              if (j == 0 || j == YH[i].length - 1) {
                  YH[i][j] = 1;
              }else {
                  YH[i][j] = YH[i - 1][j] + YH[i - 1][j - 1];
              }
          }
      }
      for (int i = 0; i < YH.length; i++) {
          for (int j = 0; j < YH[i].length; j++) {
              System.out.print(YH[i][j] + " ");
          }System.out.println("\t");
      }
    }