Java中的数组

一.   一维数组:

                数组也是变量,是堆中的一段连续的空间,数组中存储的数据数据类型必须一致。

                1. 数组中的要素:(1).数组长度:数组中存储数据的个数代表数组的长度,数组的长度是固定的,是不会改变的。

                                          (2).数组名:类似于变量名,它可以快速定位到自己的内存空间中,也可以用来区分不同的数组。

                                          (3).数组元素:即数组中存储的数据。

                                          (4).数组的类型:即数组中存储的元素的数据类型。

                                          (5).下标 / 索引:数组中的下标从0开始,到数组的长度减1为止;数组中的下标有助于随机访问数组中的元素,也可以通过下标对数组中对应下标位置上的元素进行操作;但是一定要注意下标越界问题。

                                           (6).适用场景:有固定数量的相同数据类型的数据可以存储在数组中。

                 2. 数组的定义:(1).数组的声明:语法格式:"  数组中数据的数据类型[ ]  数组名;"

                                           (2).给数组申请空间:语法格式:"  数组名 = new  数组中数据的数据类型[ 数组的长度 ];"  注意:数组一旦申请了空间,系统会默认给每一个元素赋值,不同的数据类型会有不同的默认值。

                                 注意:数组中数据的默认值:整型的默认值是" 0 ";浮点型的默认值是" 0.0 ";字符型的默认值是" null ";布尔型的默认值是" false "。

                                           (3).数组的赋值:语法格式:" 数组名 [ 数组的下标 ] = 数组对应下标的值 ( 该值的数据类型对应数组声明时的数据类型 ) "数组在赋值时一定要注意避免下标越界。

                                           (4).数组边声明边申请空间:语法格式:"  数组中数据的数据类型[ ]  数组名 = new  数组中数据的数据类型[ 数组的长度 ];",该格式的前提是我们必须知道该数组的长度。

                                           (5).数组边声明边赋值:语法格式:"  数组中数据的数据类型[ ]  数组名 = {元素1,元素2,元素3,. . . ,元素n} ",这种格式不能分行写,必须写在一行内。

                                           (6).数组边声明边申请空间边赋值:语法格式:"  数组中数据的数据类型[ ]  数组名 = new  数组中数据的数据类型[  ] {元素1,元素2,元素3,. . . ,元素n};",这种格式[ ]内不能写数组的长度,因为数组的长度是根据具体的元素个数决定的。

                 3.数组中的基本操作:(1). 数组的长度:"  数组名.length  "

                                                    (2). 获取数组中的元素:通过下标可以获取数组中的元素,格式为:"  数组名[ 要获取元素的下标 ]  "在数组中通过下标操作时一定要注意避免下标越界。

                                                    (3). 数组的遍历:我们可以通过循环来遍历数组并获取数组中的元素,我们就可以用如以下的方法来获取数组中的全部元素。在循环时注意避免数组下标越界。

int[] nums = new int[]{1,2,3,4,5,6}; //定义数组
for(int i=0; i<nums.length; i++){ //循环遍历数组
        System.out.println(nums[i]); //循环输出数组中的元素
}

        增强的for循环:foreach循环

                用foreach循环遍历数组时foreach避开了下标,不会出现数组下标越界的情况,通常用来访问元素;但是foreach循环不能实现与下标相关的操作,因此不会拿它来修改数组元素等操作。

foreach循环遍历数组:

​
int[] nums = new int[]{1,2,3,4,5,6}; //声明,申请空间并初始化数组
for(int i : nums){ //用foreach循环来遍历数组,foreach循环中的i不是数组下标,而是数组元素
        System.out.println(i); //循环输出数组中的元素
}

​

                                                (4).数组的输出:如果要输出数组中的每一个元素,需要通过循环遍历输出。如果直接输出数组名,则输出的是数组的内存地址。

二.   二维数组:

                二维数组相当于一个矩阵,二维数组就类似是由多个一维数组组成,每一行代表一个一维数组。

                1. 二维数组的定义:(1). 二维数组的声明:语法格式:"  数组中数据的数据类型[ ][ ]  数组名;"

                                                 (2). 给二维数组申请空间:语法格式:"  数组名 = new  数组中数据的数据类型[ 行数 ][ 列数 ];" 二维数组的行数是必须要声明的,列数可以声明也可以不声明。

                                                 (3). 二维数组的赋值:语法格式:"  数组名[ 行号i ] = new 数组中数据的数据类型[ ]{ 第i行中的元素 };"。二维数组中每一行的元素个数可以是不同的。

                                                 (4).二维数组的声明和创建:语法格式:"  数组中数据的数据类型[ ][ ]  数组名 = new  数组中数据的数据类型[ 行数 ][ 列数 ];",或者"  数组中数据的数据类型[ ]  数组名[ ] = new  数组中数据的数据类型[ 行数 ][ 列数 ];"

                2.二维数组的操作:(1). 二维数组的长度:语法格式:"  数组名.length;",二维数组中数组的长度指的是二维数组中的行数;换句话说,二维数组中只有行才可以有"  数组名.length  "

                                                (2).二维数组的遍历:

int[][] nums = new int[3][];   //二维数组的声明和创建
nums[0] = new int[]{1,2,3};
nums[1] = new int[]{4,5};
nums[2] = new int[]{6};        //二维数组的初始化
for(int i=0; i<nums.length; i++){   //遍历二维数组的行数
    for(int j=0; j<nums[i].length; j++){  //遍历第i行中的元素
        System.out.println(nums[i][j]);   //输出二维数组中的元素
    }
}

                                                 (3).从键盘输入二维数组:若要连续从键盘输入多个元素时,每输入一个元素需要用空格分开。

Scanner input = new Scanner(System.in); //创建Scanner对象,从键盘输入数据,注意导包
int[][] nums = new int[3][]; //声明和创建数组
for(int i=0; i<nums.length; i++){ //遍历二维数组的行数
    for(int j=0; j<nums[i],length; j++){  //遍历第i行中的元素
        nums[i][j] = input.nextInt();  //调用nextInt()方法,从键盘输入整数
        System.out.print(nums[i][j] + " ");  //输出二维数组的元素
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值