数组
数组是一种最为常见的数据结构,通过数组可以保存一组相同数据类型的数据。数组的类型可以是基本数据类型,也可以是引用数据类型,可以是一维数组,也可以是多维数组。
声明数组:
首先必须声明数组变量,才能在程序中使用数组。声明数组包括数据类型和数组标识符。
声明一维数组方式有两种,即:
数组类型[] 数组标识符; //这种更符合规范要求
数组类型 数组标识符[]; //这种更符合原始变成习惯
int[] months;
boolean members[];
Java语言中的二维数组是一种特殊的一维数组,及数组的每个元素又是一个一维数组,Java语言并不直接支持二维数组,声明二维数组方式如下:
数组的元素类型 数组名[][];
数组的元素类型[][] 数组名;
int[][] days;
boolean hoildays[][];
创建数组:
创建数组实际上就是在内存中为数组分配相应的存储空间。
创建数组的方式有两种,一种是通过new关键字创建,另一种是通过“{ }”创建。
一维数组的创建方式如下:
int[] months=new int[12]; //month的长度为12
boolean[] members={false,true,true,false}; //members的长度为4
二维数组的创建方式如下:
int[][] days=new int[2][3];
boolean holidays[][]={{true,false,true},{false,true,false}};
二维数组可以看做一个表格,数组days和holidays看成一个2行3列的表格。
arrayRefVar = new dataType[arraySize];
上面的语法语句做了两件事:
- 使用 dataType[arraySize] 创建了一个数组。
- 把新创建的数组的引用赋值给变量arrayRefVar。
数组变量的声明,和创建数组可以用一条语句完成,如下所示:
dataType[] arrayRefVar = new dataType[arraySize];
初始化数组:
数组的初始化有以下两种方式:
静态初始化:是指在定义的同时指定数组元素内容。示例代码如下:
int[] a = {1,2,3,4,5};
String[] b = {"one","two","three"};
String[][] c = { {"张三","china"},{"tom","American"},{"jack","England"} };
动态初始化:是指在定义时首先通过new 关键字开辟指定大小的存储空间,然后在为数组指定内容
int[ ] months= new int[2] ;
a[0] = 10;
b[1] = 20;
c[2] = 30;
数组长度:
数组元素的个数称作数组的长度,对于一维数组,“数组名.length”的值就是数组中元素的个数;对于二维数组,“数组名.length”是它含有一维数组的个数。
int[ ] months= new int[2] ; //一维数组months
System.out.println(months.length); //一维数组months的长度,输出值为2
String[] members = {"one","two","three"}; //一维数组b
System.out.println(members .length); //一维数组b的长度,输出值为3
int[][] days=new int[2][3]; //二维数组days
boolean holidays[][]={{true,false,true},{false,true,false}}; //二维数组holidays
//通过下列方式获得二维数组的长度,得到的是二维数组的行数
System.out.println(days.length); //二维数组days的行数,输出值为2
System.out.println(holidays.length); //二维数组holidays的行数,输出值为2
//获的二维数组的列数,方法如下
System.out.println(days[0].length); //二维数组days的列数,输出值为3
System.out.println(holidays[0].length); //二维数组holidays的列数,输出值为3
如果是通过“{ }”创建的数组,数组中每一行的列数也可以不同,例如:
boolean holidays[][]={
{true,false,true}, //二维数组的第1行为3列
{false,true}, //二维数组的第2行为2列
{false,true,false}}; //二维数组的第3行为3列
通过下列方式可以得到第一行的列数:
System.out.println(holidays[0].length); //二维数组holidays第1行的列数,输出值为3
要获得第2行和第3行的列数,方式如下:
System.out.println(holidays[1].length); //二维数组holidays第2行的列数,输出值为2
System.out.println(holidays[2].length); //二维数组holidays第3行的列数,输出值为3
使用数组元素
一维数组通过索引(注:索引是从零开始)访问自己的元素,如month[0]、months[1]等。
一维数组在访问数组中的元素时,需要同时指定数组标识符和元素在数组中的索引,例访问上面代码中创建的数组,输出索引位置为2的元素,具体代码如下:
System.out.println(month[2]);
System.out.println(members [2]);
二维数组也可以通过索引访问自己的元素,但是需要同时指定数组标识符和元素在数组中的索引,例如输出为第二行第三列的元素:
System.out.println(days[1][2]);
System.out.println(holidays[1][2]);