JAVA中的数组

数组


  • 数组是一组数据的集合,数组中的每个数据被称作元素。同一个数组中的元素类型必须一致
  • 定义:
    1
    2
    3
    4
    int[ ] x; //声明一个int[ ] 类型的变量
    x = new int [100]; //创建一个长度为100的数组
    int[ ] arr = new int[100]; //定义一个长度为100的数组

上述语句是在内存中定义了一个长度为100的数组变量,第一个元素的名称为x[0],第二个元素的名称为x[1],以此类推,第100个元素的名称为x[99],这些元素的初始值都是0。

初始化

  • 静态初始化:在定义数组同时为数组每个元素赋值。

    1
    2
    3
    1、类型[ ] 数组名 =new 类型[ ]{ 元素1,元素2, ...}
    2、类型[ ] 数组名 = {元素1,元素2, ... }
    int [ ] arr = {1,2,3,4}; //静态初始化
  • 元素赋值:

    1
    2
    3
    int [ ] arr = new int[4];
    arr[0]=1; //为第一个元素赋值
    arr[1]=2; //为第二个元素赋值
数据类型 默认初始化值
byte、short、int、long 0
float、double 0.0
char 一个空字符,’\u0000’
boolean false
引用数据类型 null,表示变量不引用任何对象

注:若使用变量引用数组时,变量的值为Null,则意味着没有指向任何数组,此时通过变量访问数组的元素会出现空指针异常

数组遍历

  • 操作数组时,经常需要依次访问数组中的每个元素,这种操作称为数组的遍历
    1
    2
    3
    4
    5
    int [] arr ={1,2,3,4,5}; //定义数组
    // 使用for 循环遍历数组元素
    for(int i=0;i<arr.length;i++){
    System.out.println(arr[i]); //通过索引访问元素
    }

注:数组的索引范围:0~length-1

  • 遍历求数组中的最大值:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public static int geMax(int[] arr){
    //定义变量max用于记住最大数,首先假设第一个元素为最大值
    int max =arr[0];
    //通过for循环遍历数组中的元素
    for(int x=1;i<arr.length;i++){
    if(arr[i]>max){ //比较arr[i]的值是否大于max
    max =arr[i]; //条件成立,将arr[i]的值赋给max
    }
    }
    return max;
    }

数组排序

  • 冒泡排序

    在排序过程中,不断比较数组中相邻的两个元素,较大的向上浮,较小的往下沉

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public static void bubbleSort(int [ ] arr){
    for(int i=0;i<arr.length-1;i++){
    //内层循环
    for(int j=0;j<arr.length-i-1;j++){
    if(arr[j]>arr[j+1]){ //比较相邻元素 数大的放在下面
    //下列代码用于交换两个元素
    int temp=arr[j];
    arr[j]=arr[j+1];
    arr[j+1] =temp;
    }
    }
    }
    }

二维数组

1
int [] [] arr new int [3] [4];

GitHub set up

1
int[] [] arr =new int [3] [];

GitHub set up

1
int[] [] arr = {{1,2},{3,4,5,6},{7,8,9}};

GitHub set up