数组对于每一门编程语言来讲都是最重要的数据结构之一,当然不同的编程语言对数组的实现以及处理也不尽相同。
数组的概念:
把有限个相同类型元素变量放在一个整体,这个整体就叫做数组。数组中的每一个元素被称为数组元素,通常可以通过数组元素的索引(也叫下标,可以理解为一种编号,从0开始)来访问数组元素,包括数组元素的赋值(set)和取值(get)。
在Java中数组属于引用类型,也是一种类型,Java中的数组要求所有的数组元素必须具有相同的数据类型,因此在一个数组中,数组元素的类型是唯一的,一个数组只能存储一种数据类型的数据,而不能存储多种数据类型的数据。
一旦数组初始化完成,数组内存所占的空间也就被固定,因此数组的长度是不可改变的。即使把某个数组中所有元素的数据全部清空,其所占的空间仍然会被保留,该空间依然属于该数组,数组长度依然不会改变。数组既可以存放基本数据类型(如:int、char、boolean),也可以存放引用数据类型(如:String),只要数组的数组元素具有相同的类型就可以。
数组在声明时必须要对其初始化。
数组的声明:
首先必须声明数组的类型,再声明数组变量(也就是名字),才能在程序中使用它。
语法:
(数组的声明一般分为以下两种方法)
类型 变量名[]; //这种风格来自C/C++语言,但不常用,不是首选方法,意思是声明一个某某类型,叫什么的数组
类型[] 变量名; //这种风格是Java的风格,常用,是首选方法,意思是声明一个某某类型的数组,叫什么
(注意:声明了一个数组,仅仅只是声明,只是有这么一个名称而已,但是里面没有任何数据,因为没有初始化,所以Java会报错)
初始化:
Java中声明了数组必须要对其初始化才可以使用。初始化也就是为数组的数组元素在内存中分配内存空间,并为每个元素赋初始值。
数组的初始化分以下两种:
①静态初始化:
静态初始化指在声明数组时就为数组元素分配空间并赋值。
语法:
dataType[] arrayName = new dataType[]{value1,value2,...,valuen}; //实际写法
dataType[] arrayName = {value1,value2,...,valuen}; //简化写法,一般常用
如:
int[] a = new int[]{1,5,7,8,11}; //实际写法
int[] a = {1,5,7,8,11}; //简化写法,一般常用
②动态初始化:
动态初始化指数组定义与数组分配空间与赋值的操作分开进行,动态初始化只指定数组的长度,由系统为每个数组元素指定初始值。
语法:
dataType[] a = new dataType[arraySize]; //常用写法
dataTypr[] b;
b = new dataType[arraySize]; //不常用写法
如:
int[] a = new int[5]; //常用写法,声明该数组长度为5
int[] b;
b = new int[5]; //不常用写法,实际含义只是将以上步骤拆分了而已
初始值:
以下是系统为数组元素分配的默认初始值:
1.数值型(byte、short、int、long):值为0。
2.浮点型(float、double):值为0.0。
3.字符型(char):值为\u0000(即空格)。
4.布尔型(boolean):值为false。
5.引用类型(类、接口、如:String字符串):值为null。