—— 本文参照 Learn Java for Android Development (第三版)
** 数组下标操作符**
通常我们是通过数组下标来对数组元素进行访问的,数组下标是一个整数,数组下标访问符是[],使用方式是跟在数组名后面,例如:ages[0],意思就是访问ages的第一个元素。
数组下标从0开始,ages[0]访问的是数组ages的第一个元素,ages[6]访问的是ages的第7个元素,数组下标必须是大于等于0且小于数组的长度。如果下标超出了这个范围的话就会报异常ArrayIndexOutOfBoundsException,有关异常的知识会在后面的章节里面做详细介绍。
求一个数组的长度使用的是.length的方式,例如求ages数组的长度就使用ages.length的方式。如果是二维数组matrix.length返回的就是有多少行,想要求二维数组有多少列则要使用这样的方式:matrix[0].length。其实二维数组本质上就是由一维数组组成的。每一行每一列都是一个一维数组。
public class arrayExample
{
public static void main(String[] args)
{
int[] ages = { 52, 28, 93, 16 };
char gradeLetters[] = { 'A', 'B', 'C', 'D', 'F' };
float[][] matrix = { { 1.0F, 2.0F, 3.0F }, { 4.0F, 5.0F, 6.0F }};
System.out.println(ages[0]);
System.out.println(gradeLetters[2]);
System.out.println(matrix[1][2]);
System.out.println(ages['\u0002']);
ages[1] = 19;
System.out.println(ages[1]);
}
}
上面这段代码,首先定义了一个一维整形数组ages,并且赋了值。接着是一个一维字符数组gradeLetter,也赋了值。再然后是一个二维数组matrix,后面就是一些实际的利用数组下标来访问数组元素的示例,并且把这些元素打印出来。ages[0]是ages的第一个元素,gradeLetters[2]是gradeLetters的第3个元素,matrix[1][2]是数组matrix的第2行的第3个元素。
数组的下标必须是整形,它可以是字节整形,短整形,整形。但是不可以是长整形,因为可能会丢失精度。数组下标最大也必须是小于最大的32位整形数的,而长整形数是比这个数要大的。
再后面我们可以看到下标其实也可以是字符的,比如ages['\u0002'],因为我们知道在java里面是允许字符向上转换为整形的,这里转换以后就是ages[2],但是在实际的开发过程中我们是不推荐这样子的写法的,因为这样可读性不强还容易犯错,例如ages['A'],这表示的已经是第66个元素了。而这完全超出ages的范围越界了。
我们还可以使用数组下标来对数组元素进行赋值,例如ages[1]=19,这里我们就把ages的第2个元素变成了19并且将这个值打印出来。
同理我们编译执行以上的代码可以看到打印结果如下:
javac arrayExample.java
java arrayExample
52
C
6.0
93
19
Page 56