基礎程式設計(25)-陣列

Array示意圖

陣列是程式語言的基本資料結構,它可以使資料的處理變得非常容易且快速,所以經常被使用。陣列的意義如上圖所示,好像我們拿了很多格子的收納盒裝東西一般,要準備多少格的格子,放入什麼樣的東西都由自己決定。不過當然,有些程式語言會要求同一個陣列裡的資料型態要相同,例如這個陣列是放數字的就只能放數字,這是比較嚴謹的做法。

我們生活中使用的收納格是不會有什麼名字或編號的,因為看得見所以東西直接丟進去就好。可是程式語言儲存的東西全部都是在電腦裡看不見的,所以為了明確的指出我們要在”那一格”取得、放入資料,陣列的每一格一定會有編號或名稱,才能讓電腦進行操作(變數也是一樣的道理)。一般來說,陣列預設是使用「索引值(index)」作為陣列的代號,有些程式語言也支援讓使用者替每一格陣列命名。

當然,陣列本身也是要給予它一個名稱的,畢竟一支程式裡可以有好多好多的陣列,有名稱才能作識別。上圖的陣列名稱是”stu”,這是代表整個陣列(集合)的名字,再配合索引值才能指定到陣列裡的某個值。例如要取得 stu 陣列裡索引值 3 的資料時,圖中顯示為 stu[3]。陣列的長度是從 0 到 6,所以是 7。這裡要注意二點,首先是有些程式語言的索引值從 0 開始編碼(通常是 C 類型語言),有些卻是從 1 開始編碼。第二點是索引值的符號,有些使用中括號[],有些使用小括號()。在學習語言時要注意不同語言的用法。

陣列宣告的時候有兩種基本的方法儲存資料。第一種方式是宣告陣列時直接指定其內容(使用大括號{}或中括號[]括住內容,視語言而定),第二種方式是只宣告陣列名稱(系統會自動給予預設值),內容之後再指定。參考下面的Java程式碼:

//在基本資料型態後面加上中括號[]表示陣列宣告,或是在變數後面加上中括號
//使用大括號{}指定陣列內容

int scores1[] = {20, 50, 80};   //宣告一個數字陣列
//也可以宣告成:int[] scores1 = {20, 50, 80};

int scores2[] = new int[3]; //宣告一個長度3的數字陣列,索引值從0-2
scores2[0] = 15;
scores2[1] = 60;
scores2[2] = 70;

多維的陣列概念和一維是一樣的,只不過索引值變多了而已,參考下面Java二維陣列的宣告:

//int score3[][] = new int[2][3];
int score3[][] = {  {11, 12, 13},
            {21, 22, 23}
         };

Java陣列規則

  • 索引值從「0」開始編碼。
  • 使用中括號[]表示陣列的索引值,大括號{}初始化陣列的內容。
  • 陣列長度:陣列名稱.length