1. 程式人生 > 其它 >Java一維,二維陣列的定義與簡單使用

Java一維,二維陣列的定義與簡單使用

技術標籤:Java的基礎知識java指標

Java中一維,二維陣列的簡單使用

陣列是具有相同資料型別的一組資料的集合,可以儲存一定量的資料,在以後的集合裡面也會涉及到陣列的知識,所以再學習Java基礎的時候,一定要學會如何去宣告陣列以及陣列的簡單使用。

一、建立一維陣列:
使用new關鍵字進行記憶體分配,在使用陣列之前,要先定義好陣列變數的型別。

  1. 方式一:先宣告,再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);
  1. 方式二:宣告陣列和分配內同時進行
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]

這六個,使用陣列的時候要注意對下表的操作,避免發生下表越界或者空指標異常

二、一維陣列的初始化

  1. 方式一:比較複雜
int[] arr1 = new int[]{1,2,3,4};
  1. 方式二:簡單粗暴
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]); } } }

結果如下:
在這裡插入圖片描述
看完了一維陣列的宣告和使用,有沒有發現和類的普通成員的定義有相似之處呢?這些知識點是必須要熟練掌握的哦,接下來我們看看二維陣列吧:

四、二維陣列的宣告

  1. 方式一:先宣告,再new分配記憶體(類比一維陣列的建立)
		int[][] arr;
        arr = new int[3][4];
  1. 方式二:宣告陣列和分配內同時進行
		int[][] arr = new int[3][4];

五、二維陣列的初始化(類比一維陣列的初始化)

  1. 方式一:比較複雜
int[][] arr = new int[][]{{12,23,34},{45,56,67},{21,32,43},{76,65,54}};
  1. 方式二:簡單粗暴
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("");//每次遍歷完一行就換行;
}

執行結果在這裡插入圖片描述
七、使用陣列的常見錯誤:

  1. 下表越界異常:
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
  1. 空指標異常
  • 這一段程式碼結果是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基礎的時候一定要多加總結,剛學的時候踩的坑越多,以後可以踩的坑才會越少。