java数组键_Java基础之数组
數組
數組就是用于存儲相同數據類型數據的一個容器。可以通過有規律的索引來訪問沒有規律的元素。
一維數組
定義格式:元素的數據類型[ ] 數組名稱 = new 元素的數據類型 [ 數組容器大小 ];
數組定義格式解釋:
元素:數組中的數據,數組中的變量。
數據類型:數組中的數據的數據類型,用來聲明當前數組中,可以存放什么類型的數據。
[ ]:表示是一個一維數組
數組名稱:數組本身也是一個變量,用于存儲數組的地址的變量。所以,數組名稱要符合標識符規范。
=:賦值符號,將數組的地址,賦值給數組的名稱
new:新建,用于在堆內存中開辟一塊空間,用來存儲數據
元素的數據類型:和前面的元素的數據類型保持一致
數組容器的大小:可以存儲數據的個數,數組長度必須給出,用于確定在內存中開辟多大的一塊空間。
數組初始化的格式:
1.元素的數據類型[] 數組名稱 = new 元素的數據類型[數組元素的個數];
2.在程序書寫的時候,就知道了數組中的元素是什么值,可以使用這一種
元素的數據類型[] 數組名稱 = new 元素的數據類型[] {元素值的羅列};
可以簡寫為:元素的數據類型[] 數組名稱 = {元素值的羅列};
數組的遍歷
遍歷:把所有元素都訪問一遍。
方式:通過循環,訪問到數組中所有元素的索引。通過索引,訪問到對應元素。
索引:角標、下標、腳標,表示某個元素在數組中的位置。范圍:0 ~ 數組長度-1。數組長度:數組元素的個數,可以通過 數組名稱.length 獲取。
代碼:
public static void main(String[] args) {
//定義一個數組
int[] arr = {12, 23, 34, 45, 56};
//定義循環,獲取到數組所有的索引,此時i不僅表示循環的控制,還表示數組的索引
for (int i = 0; i < arr.length; i++) {
//定義一個變量接收根據索引獲得到的數組中的值,并打印出來
int x = arr[i];
System.out.println(x);
}
}
練習:
1、定義一個方法,遍歷一個一維數組。
思路:通過循環,訪問到數組中所有元素的索引。通過索引,訪問到對應元素。
2、定義一個方法,求一個一維數組中的最大值。
思路:設置一個變量?max,作用是先代表數組中的最大值,遍歷數組,讓每個元素都和該變量比較,如果比最大值變量還要大,那么就讓當前元素替換掉最大值變量中的數據。
3、定義一個方法,將一個數組中的數據進行反轉。
思路:第一個變成最后一個,第二個變為倒數第二個。(0索引和arr.length-1索引位置對調,1索引和arr.length-2索引位置對調....,直到數組的最中間的元素,停止對調。)
代碼:
public static void main(String[] args) {
//定義一個數組
int[] arr = {16,80,33,43,42,57,29};
//調用數組遍歷方法,將數組作為一個實參傳遞
method01(arr);
//調用數組數組獲取最大值的方法,將數組作為一個實參傳遞
method02(arr);
//調用數組數組反轉的方法,將數組作為一個實參傳遞
method03(arr);
}
//定義一個有參數的數組遍歷方法
public static void method01(int[] arr) {
//循環遍歷,獲取所有的元素
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
//定義一個有參數的數組獲取最大值的方法
public static void method02(int[] arr) {
//先假設數組的0號索引對應的值是最大值,將它復制給一個變量
int max = arr[0];
//循環遍歷進行比較
for (int i = 1; i < arr.length; i++) {
//如果當前元素大于假設的最大值
if (arr[i] > max) {
max = arr[i];//就讓當前元素將假設的最大值替換掉
}
}
//循環結束之后,此時max就是數組中的最大值
System.out.println("數組最大值為:"+max);
}
//定義一個有參數的數組反轉的方法
public static void method03(int[] arr) {
//循環遍歷比較,可以在for循環定義兩個變量,一個索引從前向后,一個索引從后向前,
for (int i = 0, j = arr.length - 1; i < j; i++, j--) {
//i和j位置的元素,進行交換
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
二維數組
二維數組:數組的每個元素,恰好又是一個數組。
定義方式:
int[][] arr = new int[3][];
解釋:定義一個二維數組,名字arr,數組中每個元素還是一個數組,但是元素對應的數組,沒有被創建的,arr[0] ?= null。
注意:二維數組的長度,一定要給出的,[3]代表二維數組長度
int[][] arr2 = {{},{4},{5,6,7}};
解釋:arr2是一個二維數組,里面有3個元素,對應三個數組,分別是{},{4},{5,6,7}
注意:int [ ] [ ] arr = new int [0] [0];
這樣定義回拋出異常,因為arr[0]索引上的元素為{},是一個沒有任何元素的數組,獲取沒有元素的數組的指定索引,會拋出數組索引越界異常 ArrayIndexOutOfBoundsException。
數組的注意事項
1.在對數組進行操作時,先控制其值不為null,然后再判斷數組的長度,以免發生空指針異常。如果 int [ ] a = null,那么針對于數組的所有操作,都將拋出空指針異常。
2.其實,如果不判斷數組的長度不為0,就進行數組的循環遍歷,for循環是可以控制住不報錯的,但是最好將判斷數組長度不為0寫上,這樣比較嚴謹。
3.int [ ] a = null;在內存中不開辟空間。int [ ] a = { };在內存中開辟空間,只不過數組中沒有元素。
二維數組遍歷代碼:
public static void main(String[] args) {
//定義一個二維數組
int[][] arr2 = { {}, { 4 }, { 5, 6, 7 } };
// 首先,先判斷二維數組不能為null并且數組的長度不為0
if (arr2 != null && arr2.length != 0) {
//利用for循環,遍歷二維數組的每一個元素
for (int i = 0; i < arr2.length; i++) {
//二維數組的每一個元素又是一個數組,所以還需要判斷數組不能為null并且數組的長度不為0
if (arr2[i] != null && arr2[i].length != 0) {
//利用for循環,遍歷二維數組的每一個一維數組中的元素
for (int j = 0; j < arr2[i].length; j++) {
int z = arr2[i][j];
//在一行輸出每個一維數組中的元素,用,分隔
System.out.print(z+",");
}
//每輸出完一個一維數組,換行
System.out.println();
} else {
System.out.println("一維數組不能為null并且數組長度不能為0");
}
}
}else {
System.out.println("二維數組不能為null并且數組長度不能為0");
}
}
練習:
分析以下需求,并用代碼實現:
(1)定義一個int類型的一維數組,內容為{6,2,9,15,1,5,20,7,18}
(2)將數組最大元素與最后一位元素進行交換,最小元素與第一位元素進行交換,并打印數組,最后效果{1,2,9,15,6,5,18,7,20}
提示思路:先查找最大值和最小值出現的索引。
代碼實現:
public static void main(String[] args) {
int[] arr = {6,2,9,15,1,5,20,7,18};//{1,2,9,15,6,5,18,7,20}
//判斷數組不能為null并且數組長度不能為0
if(arr != null&&arr.length != 0){
//判斷數組中的元素個數是否為1,如果只有一個數,直接輸出
if(arr.length == 1){
System.out.println(arr[0]);
//判斷數組中元素個數是否為2,如果有兩個,判斷大小,最后輸出結果
}else if(arr.length == 2){
if(arr[0]>arr[1]){
int temp = arr[0];
arr[0] = arr[1];
arr[1] = temp;
}
for(int i = 0;i
System.out.print(arr[i]+",");
}
//判斷數組中的數據個數是否為2個以上
}else if(arr.length > 2){
//定義幾個變量假設是最小值,最大值,最小值的索引,最大值的索引
int min = arr[0];
int max = arr[arr.length-1];
int minIndex = 0;
int maxIndex = arr.length-1;
//使用for循環進行遍歷
for(int i = 0;i
//找到最小值和最小值的索引
if(arr[i]
minIndex = i;
min = arr[i];
}
//找到最大值和最大值的索引
if(arr[i]>max){
maxIndex = i;
max = arr[i];
}
}
//將最小值和第一個數替換
int tempMin = arr[minIndex];
arr[minIndex] = arr[0];
arr[0] = tempMin;
//將最大值和最后一個數替換
int tempMax = arr[maxIndex];
arr[maxIndex] = arr[arr.length-1];
arr[arr.length-1] = tempMax;
//for循環遍歷輸出最后結果
for(int i = 0;i
System.out.print(arr[i]+",");
}
}
}else{
System.out.println("數組不能為null并且數組長度不能為0");
}
}
總結
以上是生活随笔為你收集整理的java数组键_Java基础之数组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 每天吃水煮菜一个月能瘦多少
- 下一篇: 减肥哪里先瘦,顺序是什么