Java数组介绍

一、数组引入

        生活中有很多同类型的数据,比如分数,身高,体重等等。当我们在编程时,遇到数据的数量少时,可以直接定义一个或几个变量来存储。可是如果数量太多,我们难道定义大量不同名字的变量来存储吗?显然是不可能的。那么如何做到定义一个变量却可以存储多个数据呢?这就是接下来要说的数组了。

 

        数组,可以看成是大量数据共用一个名字,是同一类数据的序列,然后通过编号来访问。它就像一间教室,教室的编号就如同数组名,教室里的同学就如同数据。这些同学都是来上这同一堂课的,这个就是这些同学的共同点,从这个就可以把他们看成相同的数据。因此数组就是多个具有相同类型的数据的集合,就如同数学中的集合。

二、Java数组概述

1、Java数组的大小可以在运行时指定,在声明时不能指定数组元素的个数,这两点与C/C++不同。

2、Java语言的数组时一种引用数据类型,因此数组的名字存在栈区,数据存储在堆区,既数组是对象,继承了Object类的所有方法。

3、Java支持多维数据,比如二维数组,三维数组,且多维数组中的每个一维数组长度可以不同。

4、Java数组可以作为方法参数和返回值。

5、Java为数组提供了Arrays类包以方便数组的操作。

三、创建数组与使用

1、创建数组与初始化:

        创建数组有多种方法,但最终都是一样的效果,以下是几种创建数组的方法。

        初始化分为两种,分别是:动态初始化,静态初始化。动态初始化就是没有具体内容的,只分配了具体多大内存空间的,如下:

        静态初始化则是创建数组的时候同时存入数据,这里要注意的是new关键字后面的方括号里不能写长度,这里长度由数据个数决定了,如下所示:

2、数组的使用:

        数组名字后面的方括号称为下标,是用来给数组空间变号以方便数组访问的,数组下标是从0开始的,这一点与C语言一致。方法问数组多用循环和Arrays类的方式。数组作为类提供了一个length成员变量,在用循环操作的时候,可以通过这个成员变量获取数组长度。它的访问方法为:数组名.length

        下面是使用演示:

运行结果为:

10

12

10

10

10

        数组还可以作为方法的参数和返回值,但是由于数组是对象,所以数组作为参数传递时是按照引用传递,如果方法中修改了数组元素的值,那么该修改会反映到原数组对象。此外数组也可以作为返回值,也就是说一个方法可以返回一个数组对象。

        下面是实例:

运行结果:

    3、可变参数方法

      Java语言允许定义方法时带可变数量的参数,称为可变参数方法。写法就是在方法参数列表的最后一个参数的类型名后、参数名之前用省略号。

        例: 

  

        可以看到它的实质就相当于是一个数组,可以用数组方式使用。在可变参数前还可以加其他一般参数,用逗号分隔,且可变参数一定是方法的最后一个参数。但是要注意的是,在调用可变参数的方法时,可变参数是可选的,如果没有为可变参数方法传递值,那么编译器会生成一个长度为0的数组,如果传递一个null值,就会产生NullPointerException异常。

四、Arrays类

        Arrays类的类包在java.util.Arrays的路径下,其中有sort()对数组进行排序的方法,binarySearch()查找元素的方法,copyOf()和copyOfRange()把一个数组中的全部或者部分元素复制到另一个数组中,以及fill()方法,将一个值填充到数组的没一个元素中,或者几个连续的元素中的等等。具体使用方法请参考JavaAPI文档。

五、二维数组

1、二维数组定义格式及概念:

        二维数组可以看成多个一维数组组合成的一个新的数组,或者说是一维数组里面的元素变成了一个数组。

  

 

        如图,二维数组有三种声明格式,推荐使用第一种。需要注意的是,二维数组在创建后默认值为0。

        创建二维数组也有两种格式:

2、二维数组使用:

        二维数组用双重嵌套循环来访问每一个元素,外层循环控制行,内层循环控制列。二维数组初始化是在一维数组的基础上再加一层大括号。

        例:

 

3、不规则数组

        Java多维数组支持不规则长度,既每一个数组的长度不一样,但是此方法适和用于低维数组引用这类数组除了给数组分配空间,还要为每个数组元素分配空间。

        模型图:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值