Java陣列小白版

椰椰210162701037發表於2024-08-11

一、陣列概念

一、陣列定義

陣列就是指在計算機記憶體中開闢的連續儲存空間,用於存放程式執行中需要用到的一組相同型別資料的容器。

二.陣列的宣告 +陣列的長度

定義陣列時需要確定陣列的長度(元素的個數),確定後不能更改;

獲取陣列長度:陣列名.length

1. 格式1(預設初始值)

  • 資料型別 [ ] 陣列名 = new 資料型別 [ 陣列的個數 ]

    例:int [ ] money = new int [ 100 ];

    陣列長度:money.length(100);

2.格式2(賦予初始值)

  • 資料型別 [ ] 陣列名 = new 資料型別 [ ]

    例:int [ ] money = new int [ ]{100,200,300,...n};

    陣列長度:money.length(n);

3.格式3(格式2簡寫)

  • 資料型別 [ ] 陣列名 =

​ 例:int [ ] money = {100,200,300};

​ 陣列長度:money.length(3);

三、陣列的訪問

例:

int [ ] money = new int [ 100 ]; //宣告一個包含100個元素的陣列

訪問第一個元素(陣列下標索引從0開始)

money[ 0 ] = 100;

訪問第二個元素

money [ 1 ] =200;

​ ...

訪問第100個元素

money [ 99 ] = 1000;

訪問第101 個元素(陣列下越界異常,陣列越界,不會顯示編譯錯誤,而是執行時報錯)

money[ 100 ]= 1100;

四、陣列的遍歷

例:

int [] arr = new int [6];
for(index = 0;index < arr.index.length;index++){
    System.out.println(arr[index])
}

五、陣列的特點

1.陣列長度一旦指定,就無法更改;

2.陣列一旦宣告型別後,陣列中只能存放同一型別的資料陣列;

3.陣列型別可以是任何資料型別,包括基本型別和引用型別;

陣列有索引:從零開始,到陣列.length-1結束。

六、陣列的缺點

1.陣列長度指定後,就不能更改;

2.刪除、新增元素效率低;

3.陣列中實際元素的數量沒辦法獲取,沒有提供對應的方法或屬性來獲取;

七、例項

/**
 * @author yeye
 * @desc 陣列訪問示例
 * @date 2024
 */
public class ArrayVisitDemo {
    public static void main(String[] args) {
        int [] arr = new int [5];
        arr [0] = 1;
        arr [1] = 2;
        arr [2] = 3;
        arr [3] = 4;
        arr [4] = 5;
//        arr [5] = 6;//陣列越界,不會顯示編譯錯誤,而是執行時報錯
        System.out.println("陣列的長度是:"+arr.length);
        //陣列遍歷
        for(int index = 0;index <arr.length;index++){
            System.out.println(arr[index]);
        }
        System.out.println("陣列元素為:"+arr[0]+" "+arr[1]+" "+arr[2]+" "+arr[3]+" "+arr[4]);
    }
}

二、一維陣列和二維陣列

一、一維陣列定義

陣列中每個元素都只帶一個下標,這樣的陣列稱為一維陣列。使用Java陣列前,應宣告陣列併為陣列分配儲存空間。

二、宣告一維陣列

1.型別識別符號 [ ] 陣列名 =null; 例:

int [ ] list = null; //宣告list為一維型別陣列

2.型別識別符號 陣列名 [ ] = null;例:

int list [ ] = null; //宣告list為一維型別陣列

三、初始化一維陣列

1.透過直接指定初值來初始化陣列,例:

int [ ] list = {1,2,3};

2.利用new關鍵字初始化

利用new 關鍵字初始化陣列,不僅能為陣列分配需要的儲存空間,還能按照Java的預設初始化原則為陣列元素賦值。

四、二維陣列

例:int money [ ] = new int [3] [12];

二維陣列的遍歷

int money [ ] = new int [3] [12];

for(int row = 0;row <3;++row){
     for(int column = 0;column<13;++column){
           money[row][column] =100;
     }
}

三、陣列的演算法(氣泡排序法)

口訣 :

氣泡排序要知道;內外迴圈兩層套;外環陣列遍歷到;內環邊界計算好;左右元素判大小;臨時變數交換好。

//外層迴圈遍歷整個陣列(最後一個陣列不需要遍歷)
for(i = 0;i < (陣列長度-1);i++){
    //記憶體迴圈控制元素交換即冒泡,一般為陣列長度-外層迴圈遍歷-1
    for(j = 0;j <(陣列長度-i-1);j++){
        //升序--如果前面大於後面則交換;降序--如果後面大於前面則交換
        if(array[j] > array[j+1]){
            //引進temp變數作為交換媒介
            int temp = array[j+1]; //臨時變數
             array[j+1] = array[j];
             array[j] = temp;
         }
    }
         
}

例項:

package array;

/**
 * @author yeye
 * @desc 氣泡排序法
 * @date 2024
 */
public class BubbleSortDemo {
    public static void main(String[] args) {
        // 定義陣列
        int[] arr =new int [] {3,2,5,8,6,1,4,7};
        //氣泡排序
        for(int i = 0;i < arr.length;i++){
            for(int j =0;j <arr.length-i-1;j++){
                if(arr[j] > arr[j+1] ){
                    int temp = arr[j+1];
                    arr[j+1] = arr[j];
                    arr[j] = temp;
                }
            }
        }
        // 輸出排序後的陣列
        for(int i = 0;i < arr.length;i++){
            System.out.print(arr[i]);
        }
    }
}

相關文章