分析技术,品味人生。大家好我是小匠(jiang),一个热爱生活的程序猿。
数组简介
在某些情况下,虽然可以使用单个变量来存储信息,但是如果需要存储的信息较多(例如存储 50 名学生的成绩),这时再依次创建变量声明并赋值显得非常麻烦。
随着处理的信息量越来越大,工作也就越来越繁琐,这时可以使用数组或集合来存储信息。通过使用数组,可以在很大程度上缩短和简化程序代码,从而提高应用程序的效率。
数组(array)是一种最简单的复合数据类型,它是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和不同的下标来确定数组中唯一的元素。根据数组的维度,可以将其分为一维数组、二维数组和多维数组等。
在计算机语言中数组是非常重要的集合类型,大部分计算机语言中数组具有如下三个基本特性:
一致性:数组只能保存相同数据类型元素,元素的数据类型可以是任何相同的数据类型。
有序性:数组中的元素是有序的,通过下标访问。
不可变性:数组一旦初始化,则长度(数组中元素的个数)不可变。
总的来说,数组具有以下特点:
数组可以是一维数组、二维数组或多维数组。
数值数组元素的默认值为 0,而引用元素的默认值为 null。
数组的索引从 0 开始,如果数组有 n 个元素,那么数组的索引是从 0 到
(n-1)。
数组元素可以是任何类型,包括数组类型。
数组类型是从抽象基类 Array 派生的引用类型。
注意
在 Java 中数组的下标是从零开始的,很多计算机语言的数组下标也从零开始。Java 数组下标访问运算符是中括号,如 intArray[0],表示访问 intArray 数组的第一个元素,0 是第一个元素的下标。Java 中的数组本身是引用数据类型,它的长度属性是 length。
数组定义方式一 动态方式(指定数组的长度)
格式:
数组存储的数据类型[]数组名字 = new 数组存储的数据类型[长度];
[] : 表示数组。
数组名字:为定义的数组起个变量名,满足标识符规范,可以使用名字操作数组。
new:关键字,创建数组使用的关键字。
数组存储的数据类型:看创建的数组用来存储什么数据类型。
[长度]:数组的长度,表示数组容器中可以存储多少个元素。
例子:
定义可以存储3个整数的数组容器,代码如下:
int[] arr = new int[3];
数组定义方式二 静态方式(指定数组的元素)
格式:
数据类型[] 数组名 = new 数据类型[];
定义存储1,2,3,4,5整数的数组容器。
int[] arr = new int[];
或者省略格式:(不能先声明后赋值,只能声明的同时赋值)
数据类型[] 数组名 = ;
定义存储1,2,3,4,5整数的数组容器。
int[] arr = ;
注意:
1.如果使用静态方式创建数组,那么系统会根据元素的个数自动计算数组的长度
2.静态方式创建数组右边的中括号里面不能写长度
3.静态方式的省略格式创建数组不能先声明后赋值,只能声明的同时直接赋值
后记: 数组也是一种数据类型
Java的数组要求所有的数组元素具有相同的数据类型。因此,在一个数组中,数组元素的类型是唯一的,即一个数组里只能存储一种数据类型的数据,而不能存储多种数据类型的数据。
因为 Java 语言是面向对象的语言,而类与类之间可以支持继承关系(从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为),这样可能产生一个数组里可以存放多种数据类型的假象。例如有一个水果数组,要求每个数组元素都是水果,实际上数组元素既可以是苹果,也可以是香蕉(苹果、香蕉都继承了水果,都是一种特殊的水果),但这个数组的数组元素的类型还是唯一的,只能是水果类型。
一旦数组的初始化完成,数组在内存中所占的空间将被固定下来,因此数组的长度将不可改变。即使把某个数组元素的数据清空,但它所占的空间依然被保留,依然属于该数组,数组的长度依然不变。
Java 的数组既可以存储基本类型的数据,也可以存储引用类型的数据,只要所有的数组元素具有相同的类型即可。
值得指出的是,数组也是一种数据类型,它本身是一种引用类型。例如 int 是一个基本类型,但 int[](这是定义数组的一种方式)就是一种引用类型了。
int[] 是一种类型吗?怎么使用这种类型呢?
没错,int[] 就是一种数据类型,与 int 类型、String 类型相似,一样可以使用该类型来定义变量,也可以使用该类型进行类型转换等。使用 int[] 类型来定义变量、进行类型转换时与使用其他普通类型没有任何区别。int[] 类型是一种引用类型,创建 int[] 类型的对象也就是创建数组,需要使用创建数组的语法。
领取专属 10元无门槛券
私享最新 技术干货