数组就是一种容器,可以存放同种数据类型的多个值。

但可以在高范围的数组中存放低范围的数据,例如在double类型数组中存放int类型的数据(因为存在隐式转换,int类型会自动转换城double类型);但不能存放boolean类型数据。

当定义的数组的数据类型为object时,数组中可以存放多种数据类型的数据。

数组元素的访问通过 数组名[数组下标] 去访问数组中的元素,下标从0开始,到 数组长度-1 结束。

一维数组

一维数组的定义

静态数组初始化,直接给数组的元素赋值

语法: 据类型[] 数组名=new 数据类型[]{值1,值2,值3...}; 例:int[] arr=new int[]{1,2,3};

简化后:数据类型[] 数组名={值1,值2,值3...}; 例:int[] arr={1,2,3};

或者 数据类型 数组名[]={} 例:int arr[]={1,2,3};

注:

1、[]中在静态定义时,不能在里面输入数组数组长度。

2、后面的{}中可以为空,即里面的元素个数为0,一个都不定义。

3、在定义的数组的数据类型为int类型时,{}中的元素值可以为NULL(元素值为NULL时,也算一 个元素),但不能为true或false,如果数组元素是布尔类型,那么该数组的数据类型必须是 boolean。

动态数组初始化,可以通过系统去给数组中的每个元素赋值,例如让用户自己通过键盘给数组的每个元素进行赋值。

语法:数据类型[] 数组名=new 数据类型[数组长度];

当定义了数组长度,就不要在后面添加{}以及元素值,这种适合通过系统给数组中的元素赋值。

例:

int[] arr=new int[3];
for (int i=0;i<arr.length;i++)    //arr.length求出arr的数组长度
{
    Scanner scanner=new Scanner(System.in);
    arr[i]=scanner.nextInt();     //通过键盘一个个地给元素赋值
}

二维数组

二维数组是一种容器,里面的每个元素都是一维数组

二维数组静态初始化

格式: 数据类型[][] 数组名 = new 数据类型[][] {{元素1,元素2},{元素1, 元素2}};

简化后: 数据类型[][] 数组名 = {{元素1,元素2},{元素1, 元素2}};

例:int[][] arr={{1.2,3},{4,5,6}};

注:在静态定义时,每个一维数组的长度可以不相同。

二维数组态初始化

格式: 数据类型[][] 数组名 = new 数据类型[m][n];

(m:表示装一维数组的外层数组长度,n表示二维数组里的每个一维数组的长度)

通过 数组名[m][n] 去访问数组中的元素,m访问二维数组的哪一个一维数组,n表示访问的这个一维数组中的哪个元素。

例:

int[][] arr=new int[3][3];
        for (int i=0;i<arr.length;i++)
        {
            for (int j = 0; j < arr[i].length; j++)
            {
                arr[i][j]=j;
                System.out.print(arr[i][j]+" ");
            }
            System.out.println();
        }




java二维数组中一维数组开辟空间 java一维数组和二维数组_numpy