數組的聲明
一般有兩種形式的聲明:
int[] a; int a[];
這兩種聲明都沒錯,但是大多數都使用第一種聲明,因為變量名是獨立的,不帶任何符號。
聲明一個數組,並沒有將a真正的初始化為一個數組。
下面,語句就是聲明了一個可以存儲100個整數的數組。可以根據你的實際需求,更換int類型為你需要的數據類型。
int[] a=new int[100];
其中,數字數組的初始化默認為0。boolean為false。對象數組為null,如String類型的數組。
數組的循環
數組中的每個元素都有一個下標,下標從0開始,所以下標最大為數組的長度-1。
當我們需要依次輸出數組中的每個元素時,就需要用到循環。
for(int i=0;i<100;i++) { System.out.println(a[i]); }
除了常規的循環,還有一種Java中的增強for循環,就相當於C#中的foreach,只是語法稍有不同。
for(int item:a) { System.out.println(item); }
其中,int為遍歷對象的類型,item為自定義的一個名字,冒號后面的a就是你遍歷的對象,數組a。
增強for循環的用途很多,而且不用在意數組的下標。
數組的賦值
單單只聲明數組的話,數組的元素的值都只是默認值,下面的方法可以在聲明的同時初始化它們的值。
int[] a={1,2,3,4,5};
這種聲明,不需要手動限制它們的長度,它會根據值得個數,自動設置長度。
此時,a.length=5;
除了剛聲明就給數組初始化外。還有一種可以方法可以重新初始化一個數組。
a=new int[] {6,7,8,9,10};
實際情況下,很少說直接初始化一個數組的值,然后只用這些值。
一般情況下,需要聲明后,根據實際的情況,給數組賦值。
如果是單獨賦值就是a[i]=n;就行了。
還可以使用上面的for循環,給數組循環賦值。
數組的拷貝
Java允許將一個數組變量拷貝給另一個數組變量。
值得注意的是,拷貝不是單純的把a的值復制一份然后給b,而是a和b引用內存當中同一個數組。
大家可以把內存理解成很多個房間,變量名就是門牌號。就相當於a和b兩個門牌號指向同一個房間。
int[] a={1,2,3,4,5}; int[] b=a;
但是這種拷貝有種缺點,就是如果a[i]變了,對應的b[i]也會變。
如果你只是單純的想要a中的值,可以使用copyOf方法。
int[] b=Arrays.copyOf(a,a.lenght);