陣列的學習

俊俊的良發表於2020-11-13

學習目標:

1、理解容器的概念
2、掌握陣列的三種定義方式
3、會使用陣列的索引訪問陣列的元素
4、瞭解陣列的記憶體圖分析
5、瞭解空指標和越界異常
6、掌握陣列最大值的獲取
7、瞭解陣列反轉的原理


學習內容:

容器
容器的概念:將多個資料儲存到一起,每個資料稱為該容器的元素。
陣列
陣列的概念:陣列就是儲存陣列長度固定的容器,保證每個資料的資料型別一致。

陣列的定義

格式一:

陣列儲存的資料型別[] 陣列名稱 = new 陣列儲存的資料型別[長度(正整數)]

格式二:

陣列儲存的資料型別[] 陣列名稱 = new 陣列儲存的資料型別[]{{元素1,元素2,元素3,...};}

格式三:

陣列的資料型別[]陣列名稱={{元素1,元素2,元素3,...};}

備註:陣列一旦建立,長度不能發生改變,陣列具備一個【定長特性】。

陣列的特點:

1、陣列的長度在程式執行期間不可改變
2、陣列本身就是一種引用資料型別
3、陣列定義時是引用資料型別,但是陣列容器裡面儲存的元素可以是基本資料型別,也可以是引用資料型別
4、陣列當中儲存的多個資料,型別保持一致
陣列初始化:在記憶體當中建立了一個陣列,並且向陣列容器賦予一些預設值。

兩種常見的初始化動作:

a. 靜態初始化(指定內容):在建立陣列的時候,不指定陣列的長度(儲存元素的個數),而是直接指定具體的 【內容】

b.動態初始化(指定長度) :在建立陣列的時候,直接指定陣列的長度(儲存元素的個數)。

陣列的訪問:

索引:角標、下標

每一個儲存到陣列當中的元素,都會自動的分配一個編號,從[0]開始,這個系統自動分配的編號稱為陣列的索引(index),可以通過索引訪問陣列當中的元素。

格式:

陣列名稱[索引值]

陣列的長度屬性:

每個陣列都有長度,而且是固定的,Java會自動賦給陣列一個屬性,可以獲取到陣列的長度屬性。

格式:

陣列名稱.length

屬性length代表的就是陣列的長度,int 型別,陣列的最大索引值為 陣列名.length-1


陣列的常見操作

陣列越界:

public static void main(String[] args) {
            	// 動態初始化一個陣列
                int[] arr = new int[5];
                // 訪問索引值為5的陣列元素
                System.out.println(arr[5]);
        }

陣列索引是從0開始,最大索引值是arr.length-1 [0,arr.length-1]
如果訪問陣列元素時,索引值不在該區間中,程式就會丟擲陣列索引越界異常。

空指標異常:

public static void main(String[] args) {
                 // 動態初始化一個陣列
                 int[] arr = new int[3];
                 arr = null;
                 // 檢視arr陣列的第三個元素
                 System.out.println(arr[2]);  
            }

陣列空指標異常,就是在程式執行過程中,有一個在記憶體當中不存在的一個變數被引用到了

陣列遍歷【重點】:

陣列遍歷:
就是將陣列中的每一個元素分別獲取出來,就是遍歷。遍歷使我們運算元組的核心和重點內容。

陣列的索引從0開始,依次遞增,遞增到arr.length-1為止,引入迴圈結構

public static void main(String[] args) {
            // 靜態初始化一個int陣列
            int[] arr = {1,2,3,4};
            // 陣列遍歷  for或者while
            for (int i = 0; i <= arr.length-1; i++) {//遍歷容器時,初始化語句當中的迴圈變數一般都是索引值
                System.out.println(arr[i]);
            }
        }

獲取陣列中的最大值:

public static void main(String[] args) {
            // 靜態初始化一個陣列容器
            int[] arr = {3000,200,1000,10000,5000};
            // 定義一個最大值變數,儲存陣列當中的第一個元素
            int max = arr[0];
     	    for (int i = 1; i <= arr.length-1; i++) {
                //將遍歷到的元素和儲存的最大值變數進行比較
                if (arr[i] > max) {
                    //如果陣列元素的大於最大值變數,就把陣列元素賦值給最大值變數 
                    max = arr[i];
                } 
            } 
            //  陣列遍歷結束,最大值變數儲存的就是陣列當中的最大值
            System.out.println("陣列的最大值是:" + max);
        }

相關文章