数组

类别:Java 点击:0 评论:0 推荐:

l          陣列: 

宣告

l           一維陣列宣告:

n           int a1[] = new int[5];

n           int[] a1;  a1 = new int[5];  // 但不可以int[5] a1((宣告陣列大小只能在”=”右邊)

n           int testArray[]; testArray = new int[6]{1, 2, 3, 4 ,5 ,6};  // []內不可有size

l           多維陣列宣告:

n           int[][] a1 = {{1,2},{3,4,5},{6,7,8,9}};

l           需特別注意的宣告:

n           String [] s1 = new String[]{“a”,”b”,”c”}; String [] s1 = new String[]{‘a’,’b’,’c’};

n           char [] c1 = new char[]{'a','b','c'}; char [] c1 = new char[]{“a”,”b”,”c”};

Ø       陣列宣告為char時,{}中可為 ‘a’ (~z)、’0’(~9)、0(~65535)、’\u0000’(~’\uFFFF’)

Ø       陣列宣告時若為{‘3’,’a’},無論型態為何,print出來皆為ANSI碼,但需注意合法性(如上) 。

Ø       陣列宣告為char時若未給初值,則初值為”空白”,{‘ ’}是合法的,但{‘’}為不合法的,至少要有空白(但若為String,則””與” ”皆為合法的)。

可以

l           宣告時就必須指定資料型態,且同一陣列中的元素其資料型態必須相同。

l           陣列宣告時,[]必須位於type或名稱的後面。

(int[] a1[],a2[] ; int []a5,a6[] ; int[] a7,a8[] ; int []a3,[]a4;)

l           所有的陣列型態都是implement自” Cloneable interface”、” Serializable interface”,所以任何一種Array都可被assign到Cloneable type。

不可以

l           Primitive array types不可被相互assigned (Long args = Integer args) 。

l           宣告大小與給予初始值不可同時出現,否則會compile-time error,但也不可以兩者都沒有。

l           變數不可assign給二維陣列,一維陣列也不可assign給二維陣列。

注意

l           陣列無論是否為class-level或local都一定會做init,內容值則視type決定。

l           陣列的大小是 myAry.length,不是myAry.length()。length不須宣告,也不可更改。

l           陣列的index只限於byte、short、int、char四種type。

l           存取範圍超過array索引範圍會產生Exception,為runtime exception不是compile exception

l           byte [] ary1, ary2[]; //ary2是二維陣列,小心不要上當。

l           float ary = new float [123]; //不合法,少括號; Object ary = new float[123]; // 合法


来自:【 Garfield 的 SCJP 閱讀筆記 】

本文地址:http://com.8s8s.com/it/it14951.htm