數組

數組

定義:相同數據類型的多個元素的容器。

我們通過下標的方式,試問數組中的元素,下標是從0開始的。
數組是定長的,定義長度後無法更改;

定義的格式:

格式1:
數據類型 [ ] 數組名 = new 數據類型[長度];
格式2:
定義一個指定的長度,且指定的具體內容的數組;
數據類型 [ ] 數組名 = {元素1,元素2,元素3,元素4,..........,元素n};

格式3:

僅定義變量名,不進行初始化.

數據類型 [ ] 數組名;


格式4:

數據類型 [ ] 數組名 = new 數據類型 [ ] { 元素1,元素2,元素3,元素4,..........,元素n};

數組的數據存儲:

數組名[下標] = 值;

將一個值,賦值給數組中的一個下標,如果原本有值,則覆蓋 !


數組長度的獲取:

格式:
int length = 數組名.length;

數組的遍歷:

for(int  i = 0;i<數組名.length;i++ ){
system.out.print(數組名[i]);

}

練習:


    //已知一個空的int數組如下: 

   // int[] arr = new int[10];

   // 通過循環接收用戶輸入, 來爲這個數組中的十個下標賦值 !  

    //再通過循環遍歷, 將數組中的所有數字進行打印 



    import java.util.Scanner;

    public class Demo8{
        public static void main(String[] args){
            int[] arr = new int[10];
            Scanner input = new Scanner(System.in);
            //通過循環接收用戶輸入, 來爲這個數組中的十個下標賦值 !  
            for(int i=0;i<10;i++){
                System.out.println("請輸入第"+(i+1)+"數字:");
                arr[i] = input.nextInt();
            }

            for(int i=0;i<10;i++){
                System.out.println(arr[i]);
            }


        }
    }


常見錯誤:

- 空指針異常
NullPointException;
導致錯誤原因,在於使用了未賦值的數組;
- 數組下標越界:
錯誤原因:訪問的下標超出了邊界;

練習


   // 已知有兩個數組如下: 

    int[] arr1 = {5,4,22,56,78,93};

    int[] arr2 = new int[12];


   // 通過代碼, 將arr1中的所有元素, 賦值給arr2對應的下標 !  (數組的複製)

    for(int i=0;i<arr1.length;i++){
        arr2[i] = arr1[i];
    }





    //我們都知道 數組的長度一經確定, 是無法改變的!

    //但是我們其實可以通過技術來變相的實現動態擴容 , 只需要修改上述練習即可:


    for(int i=0;i<arr1.length;i++){
        arr2[i] = arr1[i];
    }
    arr1 = arr2;


數組的動態擴容

原理:使用新的容量更大的數組,將原數組覆蓋!

數組元素的刪除,並移動位置

//已知一個數組如下: 

int[] arr = {11,22,33,44,55,66,77,88,99};

//請用戶輸入要刪除的下標 , 刪除這個下標對應的元素, 並將後續的數據依次向前移動

//代碼實現:

import java.util.Scanner;

public class Demo9{
    public static void main(String[] args){
        int[] arr = {11,22,33,44,55,66,77,88,99};
        Scanner input = new Scanner(System.in);
        System.out.println("請輸入要刪除的元素的下標(0-8): ");
        int index = input.nextInt();
        //從用戶輸入的下標+1位置開始 ,數據循環向前移動 , 使用覆蓋來完成數據的刪除

        if(index>=0&&index<=8){
            //-------------------------------------------
            //向前移動
            for(int i=index;i<arr.length-1;i++){
                arr[i] = arr[i+1];
            }
            //最後一個賦值爲默認值, 表示數據刪除
            arr[arr.length-1] = 0;
            //-------------------------------------------
        }else{
            System.out.println("sb");
        }

    }
}









 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章