數組 java數組是一個容器,保存著一組值,當數組創建之後,數組的的長度就固定了。 1.數組的定義 1.聲明數組 int array=null; 聲明瞭數組之後,數組是空的,沒什麼實際意義 2.創建數組 array=new[10]; 3.給元素中數組賦值 array[0]=0; 註:數組的下標是 ...
數組
java數組是一個容器,保存著一組值,當數組創建之後,數組的的長度就固定了。
1.數組的定義
-
1.聲明數組
int array=null;
聲明瞭數組之後,數組是空的,沒什麼實際意義
-
2.創建數組
array=new[10];
-
3.給元素中數組賦值
array[0]=0;
-
註:數組的下標是從0開始,也就是說長度為5的數組,實際用下標表示的話分別為為0,1,2,3,4,
也可以把數組的聲明和定義寫在一起:數組的類型[] 變數的名字=new 數組類型[數組長度]
public class ArrayDemo01 {
//數組的定義
//數組的類型[] 變數的名字=變數的值
public static void main(String[] args) {
int[] num;//1.聲明一個數組
//2.聲明之後對數組進行創建,指定數組的大小
num=new int[10];//這裡可以存放10個int類型的數字
//給數組元素中賦值
//上述也可以直接寫成int[] num=new int[10];
num[0]=1;
num[1]=2;
num[2]=3;
num[3]=4;
num[4]=5;
num[5]=6;
num[6]=7;
num[7]=8;
num[9]=10;
//利用for迴圈來寫,使用num。length獲取數組的長度
for (int i=0;i<num.length;i++){
System.out.print(num[i]+" ");
}
}
}
輸出:
1 2 3 4 5 6 7 8 0 10
可以看到我們數組中下標為8的地方是沒有存放數據的,這時我們列印會預設輸出0
2.數組的特點:
- 長度是確定的,數組一旦被創建,大小就不可以改變
- 其元素必須是相同類型,不允許出現混合類型
- 數組中的元素可以是任何數據類型,包括基本類型和和引用類型
- 數組變數屬引用類型,數組也可以看成是對象,數組中的每個元素相當於該對象的成員變數。數組本身就是對象,Java中對象是在堆中的,因此數組無論保存原始類型還是其他對象類型,數組本身是在堆中的
3.數組的邊界問題:
-
下標的合法區間[0,array.lengrh-1],如果下標越界,就會報錯
代碼示例:創建一個長度為5的int數組,而我們在下標為5時存儲一個數,運行一下看
public class ArrayDemo03 { public static void main(String[] args) { int[] arr=new int[5]; arr[5]=6; System.out.println(arr[6]); } }
輸出:
ArrayIndexOutOfBoundsException:也就是數組下標越界異常
4.數組定義的總結
- 數組是相同數據類型的有序集合
- 數組也是對象,數組元素相當於對象的成員變數
- 數組長度是確定的,不可變的。如果越界,會報:ArrayIndexOutOfBoundsException
5.數組的實際應用
分別使用foreach來列印數組,以及定義列印數組的方法,以及反轉數組的方法來看一下數組的實際營養不夠
代碼示例:
public class ArrayDemo04 {
public static void main(String[] args) {
int[] arrs={1,2,3,4,65};
//用增強for迴圈(for each)去寫,
for (int arr:arrs){
System.out.print(arr+" ");
}
System.out.println();
System.out.println("============");
printArray(arrs);
System.out.println();
System.out.println("==============");
int[] reverse=reverse(arrs);
printArray(reverse);
}
//可以看出我們也可以把數組的列印,封裝成一個方法,然後在主方法里直接調用即可
//列印數組元素
public static void printArray(int[] arrs){
for (int arr:arrs){
System.out.print(arr+" ");
}
}
//反轉數組
public static int[] reverse(int[] arrs){
int[] result=new int[arrs.length];
//反轉的操作
for (int i = 0,j=result.length-1; i < arrs.length;i++,j--) {
result[j]=arrs[i];
}
return result;
}
}
輸出:
1 2 3 4 65
============
1 2 3 4 65
==============
65 4 3 2 1