首頁歷史 > 正文

「小顏」java的靜態陣列的常見操作和求最值案例「9」

2022-01-13由 老顏愛學習 發表于 歷史

大家晚上好,我是小顏在Study,今天照常打卡自學java第九天,不知不覺已經九天了,離開學越來越近了,到時候會更忙!先不想這麼多,大家多多支援啊!奔跑起來!沖沖衝!!!

第九天學習java

一、陣列初始化之靜態初始化

(1)定義:

初始化指的是每個陣列元素的初始值,由系統決定陣列長度(

與動態的區別所在

(2)格式:(兩種格式,推薦第二種簡化的格式)

①資料型別

[ ] 變數名 = new 資料型別 [ ] { 資料1 ,資料2 ……};

舉例: int [ ] arr = new int [ ] { 1,2,3,4};

②資料型別

[ ] 變數名 = { 1 ,3,4,5};

舉例: int [ ] arr = {1,3,4,5};

(3)陣列操作的兩個常見小問題。

①索引越界。

解釋:

就是你定義的長度或者本身長度只有3,而你卻去獲取第四個索引,這樣就會報錯。例如:

int [ ] arr = int [ 3 ] ;

System。out。println(arr [ 3 ] ) ;

這樣就會報錯,因為索引只有0 、1、2。上面你訪問了3號索引沒有。

②空指標異常:

解釋:訪問的陣列已經不在指向堆記憶體(即左邊的資料)的資料,將會造成空指標異常。例如:

int [ ] arr = int [ 3 ] ;

arr = null;//這時使得原來的陣列初始值變成了null,這就造成了空指標異常。

System。out。println(arr [ 3 ] ) ;

③ null :

空值,引用資料型別的預設值,表示不指向任何有效物件。

「小顏」java的靜態陣列的常見操作和求最值案例「9」

二、陣列常見操作

(1)遍歷:

在我們學了靜態初始化陣列之後,我們會發現:

int [ ] arr = {200,3,5,100,3};

這麼多資料時,我們應該怎麼把它輸出出來,按照老方法,我們會這樣:

System。out。println(arr [ 0 ]);

System。out。println(arr [ 1 ]);

System。out。println(arr [ 2 ]);

System。out。println(arr [ 3]);

這樣是不是太麻煩了,沒錯,我們可以使用for迴圈來代替。

哪裡是變化的,就是裡面的索引是變化的吧,而且還是逐一增加。所以我們可以寫成:

for (int x = 0 ; x < 4 ; x ++){

System。out。println(arr [ x]);

}

這樣就實現了上述操作,是不是簡單多了。這時問題又來了,你會發現,當陣列的元素很多時,我們不可能一個一個去數才能確定x的範圍。因此,這裡我們可以使用一個獲取陣列元素數量的方法:

格式:陣列名.length

因此我們的for迴圈遍歷可以寫成這樣:

for (int x= 0; x < arr。lenth; x ++){

System。out。println(arr [x]);

}

這樣就不管陣列有多少,我們都可以一一地把他的內容遍歷出來。上述這樣的寫法也可以是通用格式:

int [ ] arr = {……};

for (int x = 0; x < arr。lenth; x ++ ){

arr[ x ] //這裡可以對arr[ x ] 操作。

}

「小顏」java的靜態陣列的常見操作和求最值案例「9」

三、案例獲取最值

(1)語境:當我們有一堆資料時,例如幾個人的年齡,如何從中比較出最大的那個人和最小的那個人。

(2)步驟:

先將它們定義成一個數組,並且定義個max儲存它們的最大年齡。

int [ ] arr = { 30 ,12,46,3,18,70,48};

int max;

使用for迴圈將它們遍歷出來。每遍歷一個比較一次,也就是我們需要拿一個初始資料去對比。這裡我們將索引0作為初始對比資料。

所以先用定義第一個資料:

int max = arr [ 0 ] ;//定義一個初始資料去對比

for (x = 1 ; x < arr 。lenth; x ++){

//因為0 已經做初始資料了,所以這裡從1開始

if (arr [ x ] > max ){

//每遍歷一個數據出來與初始值對比。

max = arr [ x ] ;

}

//最後輸出:

System。out。println(“ max :” + max );

}

「小顏」java的靜態陣列的常見操作和求最值案例「9」

今天就學習到這裡!!!!明天見!!

頂部