數組
1.容器的概念:
容器是將多個數據存儲到一起,每個數據稱爲該容器的元素。
生活中的容器:水杯,衣櫃,教室。
2.數組的概念:
數組就是存儲數據長度固定的容器,保證多個數據的數據類型要一致。
1.所有元素類型必須一致
2.一旦創建長度不能改變
3.數組的定義:(三種定義方式)
1.方式一:
數組存儲的數據類型[] 數組名 = new 數組存儲的數據類型[長度];
int[] arr = new int[3];
- 長度自己指定
2.方式二:
數據類型[] 數組名 = new 數據類型[]{元素1,元素2,元素3...};
int[] arr = new int[]{1,2,3,4,5};
長度自動識別
3.方式三:
數據類型[] 數組名 = {元素1,元素2,元素3...};
int[] arr = {1,2,3,4,5};
4.總結:
數組存儲的數據類型: 創建的數組容器可以存儲什麼數據類型。
[] : 表示數組。
數組名字:爲定義的數組的變量名,滿足標識符規範,可以使用名字操作數組。
new:關鍵字,創建數組使用的關鍵字。
數組存儲的數據類型: 創建的數組容器可以存儲什麼數據類型。
[長度]:數組的長度,表示數組容器中可以存儲多少個元素。
注意:數組有定長特性,長度一旦指定,不可更改。
4.數組的訪問:
1.格式:
數組名[索引];索引從0開始
2.索引:
每一個存儲到數組的元素,都會自動的擁有一個編號,從0開始,這個自動編號稱爲數組索引 (index),可以通過數組的索引訪問到數組中的元素。
3.訪問:
數組名[索引] = 數值;表示給數組元素賦值
變量 = 數組名[索引] 表示取出數組元素賦值給變量
4.數組的內存圖解:int[] array = new int[4] 四個元素
5.注意:
數組越界:索引超過長度(索引最大是長度-1)
空指針:數組內容被清除,數組名=null
5.數組的遍歷:
通過for循環遍歷,次數爲數組長度。
初始化循環變量從零開始,循環條件可爲1)< 數組名.length 2)<=數組名.length-1
6.數組作爲方法參數和返回值:
1.數組作爲方法參數傳遞:
傳遞的參數是數組內存的地址。
2.數組作爲方法返回值
返回的是數組的首地址
7.數組的最大值獲取:
獲取數組中的最大值,就像是打擂臺一樣,最後選出最大值。
//首先創建一個擂臺,擂臺就是一個數組
int[] array = {10,50,20,40,100,80}
//然後讓一個人先上臺,等待其他人上臺比試
int max = array[0];
//等待全部人上臺比試
for(int i = 0;i < array.length;i++){
//如果有人比第一個人厲害,那麼他就是暫時的擂主
if(array[i]>max){
max = array[i];
}
}
//比試結束,擂主選出,輸出最大值
System.out.println(max);
8.數組的反轉原理:
一串數字,第一個數字和最後一個數字交換位置,第二個數字和倒數第二個數字交換位置....
第一種方式:
int[] array = {1,2,3,4,5,6};
//獲取兩個索引,一個是第一個元素的索引,一個是在最後一個元素的索引
int min = 0;
int max = array.length-1;
//最小的索引+1,最大的索引-1進行交換,可以用循環實現
//交換先定義一箇中間轉換量
int temp = 0;
while(min < max ){
//交換位置,用到中間變量轉接數值
temp = arrary[min];
array[min] = array[max];
array[max] = temp;
}
第二種方式:
int[] array = {1,2,3,4,5,6};
//交換中間變量
int temp = 0;
//獲取數組長度,用.length屬性獲取
//遍歷數組長度的一半,通過.length-1-i獲取對用的後面需要交換位置的元素
for(int i = 0;i < array.length/2;i++){
//array[i]和array[array.length-i]交換
temp = arrary[i];
array[i] = array[array.length-1-i];
array[array.length-1-i] = temp;
}