數組是一種特殊的資料類型,在基礎課程裡面有很多地方講到過。
1、數組的建立
int [ ]num1 = new int[3];
int [] num2 = new int[]{1,2,3};
int [] num3 = {1,2,3};
問一個小問題,請問這種定義方式對嗎? int [] num3 = new int[3]{1,2,3}; 答案:不對!這也是看張孝祥的視頻知道的。
String []str1 = new String[3];
String []str2 = new String[]{"a","b","c"};
String []str3 = new String{"a","b","c"};
2、數組的初始化
動態初始化:數組定義與為數組分配空間和賦值的操作分開進行;
靜態初始化:在定義數位同時就為數組元素分配空間並賦值;
預設初始化:數組是參考型別,它的元素相當於類的成員變數,因此數組分配空間後,每個元素也被按照成員變數的規則被隱士初始化。
如果在聲明的同時給數組初始化,就不要指定數組的元素個數。反之,需要指定數組個數。
3、數組的列印
我們知道,列印數組只會列印出數組的首地址。而我們十分想要知道的是數組中存了哪些資料。幸好我們可以通過以下方式列印出數組,
使用工具類Arrays.asList(),如下樣本:
package test;import java.util.Arrays;public class ShuZu { public static void main(String[] args) { int []num ={1,2,3,4}; String []str = new String[]{"a","b","c"}; System.out.println(Arrays.asList(num)); System.out.println(Arrays.asList(str)); }}
輸出結果:
[[I@de6ced]
[a, b, c]
之所以有下面的輸出結果是因為Arrays.asList()在jdk1.5版本以下版本需要傳入物件類型的參數asList(Object []obj)
而int是普通類型,不符全要求,於是系統自動調用jdk1.5版本的Arrays.asList(T ...a)方法,而這個方法會將數組當
成是一個參數傳入,於是就出現了上面只列印出地址的狀況,而字元數組則按照我們的要求列印出。
解決的辦法,可以將整形數組定義為Integer類型。Integer [] num = new Integer{1,2,3};