4.2一维数组

        一维数组实质上是一组相同类型数据的线性集合,当在程序中需要处理一组数据,或者传递一组数据时,可以应用这种类型的数组。本节将讲解一维数组的创建、初始化及使用。

4.2.1  创建一维数组

        数组作为对象允许使用new关键字进行内存分配。在使用数组之前,必须首先定义数组变量所属的类型。一维数组的创建有两种形式。

1.先声明,再用new关键字进行内存分配

        声明一维数组有下列两种方式:

数组元素类型 数组名字[];

数组元素类型[] 数组名字;

        数组元素类型决定了数组的数据类型,它可以是Java中任意的数据类型,包括简单类型和组合类型。数组名字为一个合法的标识符,符号“[]”指明该变量是一个数组类型变量。单个“[]”表示要创建的数组是一个一维数组。
        声明一维数组,代码如下:

int arr[];        //声明int型数组,数组中的每个元素都是int型数值

        声明数组后,还不能立即访问它的任何元素,因为声明数组只是给出了数组名字和元素的数据类型,要想真正使用数组,还要为它分配内存空间。在为数组分配内存空间时必须指明数组的长度。为数组分配内存空间的语法格式如下:

数组名字 = new 数组元素的类型[数组元素的个数];

        ☑ 数组名字:被连接到数组变量的名称。
        ☑ 数组元素的个数:指定数组中变量的个数,即数组的长度。
        通过上面的语法可知,使用new关键字为数组分配内存时,必须指定数组元素的类型和数组元素的个数,即数组的长度。
        为数组分配内存,代码如下:

arr = new int[5];

        以上代码表示要创建一个含有5个元素的整型数组,并且将创建的数组对象赋给引用变量arr,即通过引用变量arr来引用这个数组。
        arr为数组名称,方括号“[]”中的值为数组的下标。数组通过下标来区分数组中不同的元素。数组的下标是从0开始的。由于创建的数组arr中有5个元素,因此数组中元素的下标为0~4。

arr[0] arr[1] arr[2] arr[3] arr[4]

误区警示:
        使用new关键字为数组分配内存时,整型数组中各个元素的初始值都为0。

2.声明的同时为数组分配内存

        这种创建数组的方法是将数组的声明和内存的分配合在一起执行。语法如下:

数组元素的类型 数组名 = new 数组元素的类型[数组元素的个数];

        声明并为数组分配内存,代码如下:

int month[] = new int[12]

        上面的代码创建数组month,并指定了数组长度为12。这种创建数组的方法也是Java程序编写过程中普遍的做法。

4.2.2  初始化一维数组

        数组与基本数据类型一样可以进行初始化操作。数组的初始化可分别初始化数组中的每个元素。数组的初始化有以下两种方式:

int arr[] = new int[]{1,2,3,5,25};        //第一种初始化方式

int arr2[] = {34,23,12,6};        //第二种初始化方式

        从中可以看出,数组的初始化就是包括在大括号之内用逗号分开的表达式列表。用逗号(,)分割数组中的各个元素,系统自动为数组分配一定的空间。用第一种初始化方式,将创建5个元素的数组,其元素依次为1、2、3、5、25。第二种初始化方式,会创建4个元素的数组,其元素依次为34、23、12、6。

4.2.3使用一维数组

        在Java集合中,一维数组是常见的一种数据结构。那么,如何使用一维数组解决生活中的实际问题呢?来看下面的实例。
        【例1】使用一维数组输出1~12月每个月份的天数
        在项目中创建GetDay类,在主方法中创建并初始化一个用于存储1~12月每个月份天数的int型数组,在控制台上输出1~12月每个月份的天数。实例代码如下:

public class GetDay{    //创建类
    public static void main(String[] args){    //主方法
        int day[] = new int[]{31,28,31,30,31,30,31,31,30,31,30,31};    //创建并初始化一维数组            
        for (int i = 0;i < 12;i++){    //利用循环将信息输出
            System.out.println((i+1)+"月有"+day[i]+"天");    //输出每月的天数
        }
    }
}

运行结果如下:
1月有31天
2月有28天
3月有31天
4月有30天
5月有31天
6月有30天
7月有31天
8月有31天

9月有30天
10月有31天
11月有30天
12月有31天

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豐儀麟阁贵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值