陣列的學習
學習目標:
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);
}
相關文章
- 陣列學習陣列
- plsql陣列學習SQL陣列
- 學習JSON陣列JSON陣列
- PHP學習3——陣列PHP陣列
- Java學習之陣列Java陣列
- c# 陣列學習C#陣列
- NumPy 學習(2): 陣列的操作陣列
- 陣列更加深入的學習陣列
- Java學習之陣列練習Java陣列
- Golang 學習——陣列指標和指標陣列的區別Golang陣列指標
- 【Numpy學習08】陣列迭代陣列
- JS陣列學習筆記JS陣列筆記
- gcc 0長陣列學習GC陣列
- PHP陣列學習之計算陣列元素總和PHP陣列
- Java 學習筆記 二維陣列和物件陣列Java筆記陣列物件
- 小白對go陣列及切片的學習Go陣列
- PHP 學習總結之陣列PHP陣列
- 學習筆記——陣列方法整理筆記陣列
- JavaScript學習四(object物件,陣列,)JavaScriptObject物件陣列
- Java學習筆記之陣列Java筆記陣列
- 學習筆記----樹狀陣列筆記陣列
- swift 學習筆記之陣列Swift筆記陣列
- 學習筆記----字尾陣列筆記陣列
- 字尾陣列 學習筆記陣列筆記
- 字尾陣列學習筆記陣列筆記
- Java學習筆記——陣列練習(七)Java筆記陣列
- Vue陣列變化的偵測的學習Vue陣列
- JavaScript 學習筆記 - 多維陣列變為一維陣列JavaScript筆記陣列
- 飛機的 PHP 學習筆記五:陣列PHP筆記陣列
- 【numpy學習筆記】陣列的切片,索引,迭代筆記陣列索引
- es6陣列擴充套件的學習陣列套件
- Swift學習筆記(二十)——陣列的基本操作Swift筆記陣列
- linux shell陣列深入學習理解Linux陣列
- go語言學習-陣列-切片-mapGo陣列
- 【C#學習筆記】陣列使用C#筆記陣列
- javaScript學習基礎篇(1)(陣列)JavaScript陣列
- 深入學習golang(1)—陣列與切片Golang陣列
- 演算法學習-零子陣列,最大連續子陣列演算法陣列