—— 本文參照 Learn Java for Android Development (第三版)
** 數(shù)組下標(biāo)操作符**
通常我們是通過數(shù)組下標(biāo)來對數(shù)組元素進行訪問的,數(shù)組下標(biāo)是一個整數(shù),數(shù)組下標(biāo)訪問符是[],使用方式是跟在數(shù)組名后面,例如:ages[0],意思就是訪問ages的第一個元素。
數(shù)組下標(biāo)從0開始,ages[0]訪問的是數(shù)組ages的第一個元素,ages[6]訪問的是ages的第7個元素,數(shù)組下標(biāo)必須是大于等于0且小于數(shù)組的長度。如果下標(biāo)超出了這個范圍的話就會報異常ArrayIndexOutOfBoundsException,有關(guān)異常的知識會在后面的章節(jié)里面做詳細介紹。
求一個數(shù)組的長度使用的是.length的方式,例如求ages數(shù)組的長度就使用ages.length的方式。如果是二維數(shù)組matrix.length返回的就是有多少行,想要求二維數(shù)組有多少列則要使用這樣的方式:matrix[0].length。其實二維數(shù)組本質(zhì)上就是由一維數(shù)組組成的。每一行每一列都是一個一維數(shù)組。
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]);
}
}
上面這段代碼,首先定義了一個一維整形數(shù)組ages,并且賦了值。接著是一個一維字符數(shù)組gradeLetter,也賦了值。再然后是一個二維數(shù)組matrix,后面就是一些實際的利用數(shù)組下標(biāo)來訪問數(shù)組元素的示例,并且把這些元素打印出來。ages[0]是ages的第一個元素,gradeLetters[2]是gradeLetters的第3個元素,matrix[1][2]是數(shù)組matrix的第2行的第3個元素。
數(shù)組的下標(biāo)必須是整形,它可以是字節(jié)整形,短整形,整形。但是不可以是長整形,因為可能會丟失精度。數(shù)組下標(biāo)最大也必須是小于最大的32位整形數(shù)的,而長整形數(shù)是比這個數(shù)要大的。
再后面我們可以看到下標(biāo)其實也可以是字符的,比如ages['\u0002'],因為我們知道在java里面是允許字符向上轉(zhuǎn)換為整形的,這里轉(zhuǎn)換以后就是ages[2],但是在實際的開發(fā)過程中我們是不推薦這樣子的寫法的,因為這樣可讀性不強還容易犯錯,例如ages['A'],這表示的已經(jīng)是第66個元素了。而這完全超出ages的范圍越界了。
我們還可以使用數(shù)組下標(biāo)來對數(shù)組元素進行賦值,例如ages[1]=19,這里我們就把ages的第2個元素變成了19并且將這個值打印出來。
同理我們編譯執(zhí)行以上的代碼可以看到打印結(jié)果如下:
javac arrayExample.java
java arrayExample
52
C
6.0
93
19
Page 56