Java一維,二維陣列的定義與簡單使用
阿新 • • 發佈:2021-01-08
Java中一維,二維陣列的簡單使用
陣列是具有相同資料型別的一組資料的集合,可以儲存一定量的資料,在以後的集合裡面也會涉及到陣列的知識,所以再學習Java基礎的時候,一定要學會如何去宣告陣列以及陣列的簡單使用。
一、建立一維陣列:
使用new關鍵字進行記憶體分配,在使用陣列之前,要先定義好陣列變數的型別。
- 方式一:先宣告,再new分配記憶體
int[] arr1;//arr1和arr2兩種宣告方式都可以
int arr2[];//聲明瞭int型別的陣列,陣列的元素型別只能是int型的
String[] arr3;
char[] arr4;
double[] aee5;
float[] arr6;
//為定義了的陣列arr1分配記憶體,指定了arr1的長度為6
arr1 = new int[6];
//列印陣列長度
System.out.println(arr1.length);
- 方式二:宣告陣列和分配內同時進行
int[] arr1 = new int[6];//聲明瞭int型別的陣列,並指定記憶體大小為6
char[] arr2 = new char[10];
注意:指定了長度為6,但是陣列的下表是從0開始的,裡面元素的下表分別為:
a[0],a[1],a[2],a[3],a[4],a[5]
這六個,使用陣列的時候要注意對下表的操作,避免發生下表越界或者空指標異常
二、一維陣列的初始化
- 方式一:比較複雜
int[] arr1 = new int[]{1,2,3,4};
- 方式二:簡單粗暴
int[] arr2 = {1,2,3,4};
三、一維陣列的使用:
public class Test_01 {
public static void main(String[] args) {
//定義陣列並賦值
int[] arr = {1,2,0,23,43,45};
//陣列的遍歷,arr.length可以獲得陣列的長度
for (int i = 0; i < arr.length; i++) {
System.out.println("arr[" + i + "]:" + arr[i]);
}
}
}
結果如下:
看完了一維陣列的宣告和使用,有沒有發現和類的普通成員的定義有相似之處呢?這些知識點是必須要熟練掌握的哦,接下來我們看看二維陣列吧:
四、二維陣列的宣告
- 方式一:先宣告,再new分配記憶體(類比一維陣列的建立)
int[][] arr;
arr = new int[3][4];
- 方式二:宣告陣列和分配內同時進行
int[][] arr = new int[3][4];
五、二維陣列的初始化(類比一維陣列的初始化)
- 方式一:比較複雜
int[][] arr = new int[][]{{12,23,34},{45,56,67},{21,32,43},{76,65,54}};
- 方式二:簡單粗暴
int[][] arr2 = {{12,23,34},{45,56,67},{21,32,43},{76,65,54}};
六、二維陣列的使用:
//定義陣列並賦值
int[][] arr = {{1,2,3},{2,3,4},{3,4,5}};
//陣列的遍歷,可以使用巢狀fro迴圈
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print("arr["+i+"]["+j+"]="+arr[i][j]+" ");
}
System.out.println("");//每次遍歷完一行就換行;
}
執行結果
七、使用陣列的常見錯誤:
- 下表越界異常:
int[] arr = {1,2,3};//長度為3,只能操作arr[0],arr[1],arr[2]這三個元素
System.out.println(arr[3]);
//執行上面的程式碼會報以下錯誤
//Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
- 空指標異常
- 這一段程式碼結果是null
public class Test_01 {
public static void main(String[] args) {
//定義了Person型別的陣列,裡面還未賦值
Person[] arr = new Person[3];
System.out.println(arr[2]);
}
}
class Person{
int age;
}
//執行結果是null
注意:因為定義了Person型別的陣列,指定了長度,但並未初始化,裡面的元素還沒裝載Person型別的物件,接下來的操作將發生空指標異常(仔細看區別,思考改如何改正):
- 這一段是空指標異常
public class Test_01 {
public static void main(String[] args) {
//定義了Person型別的陣列,裡面還未賦值
Person[] arr = new Person[3];
System.out.println(arr[2].age);//元素還未存在,這樣呼叫會報空指標異常
}
}
class Person{
int age;
}
//執行結果是:Exception in thread "main" java.lang.NullPointerException
學習Java基礎的時候一定要多加總結,剛學的時候踩的坑越多,以後可以踩的坑才會越少。