iT邦幫忙

2022 iThome 鐵人賽

DAY 10
0
自我挑戰組

30天Java由淺入深系列 第 10

Day 10 : 陣列

  • 分享至 

  • xImage
  •  

介紹

之前我們有介紹到許多不同類型的變數種類,假如我們把很多個同種類型的變數放在一起儲存,且不用再另外設定變數名稱即可使用,這樣的資料元素集合我們叫做「陣列」(Array)。陣列裡面存放的資料一定是同種類型(ex.全為String)。

  • 在記憶體當中使用連續的位址儲存。我們假設一個int陣列的第一個元素位址是 0 x 0004,因為int一個元素佔4 bytes,所以第二個元素的位址就是 0 x 0008。
  • 使用陣列的優點是每一個元素都有其對應之「索引值」(index),存取上方便;但正因為其使用連續的記憶體位址,如果想要刪除其中一個元素,就必須移動前後資料,操作麻煩。
  • 補充說明 : 陣列儲存相同資料型態的元素,若資料型態不同呢 ?
    → 在物件導向語言中,我們會放在一個類別(class)裡 ; 程序式程式語言中,我們會用結構(structure)儲存。

一維陣列

要宣告一個陣列,我們將一個中括號[ ](square brackets)設置在變數類型後,後面的內容用大括號包起來,並用逗號分隔 :

//variableType[] variableName = {}
String[] cars = {"Telsa","Benz","BMW"};      //字串陣列內容用雙引號""包起來
int[] num = {12 , 6 , 2001};
char[] character = {'C','H','I'};            //字元陣列內容用單引號''包起來

當想讀取陣列裡面的元素,要透過索引值去存取內容。特別注意,陣列中的第一個元素索引值一定是從 0 開始,所以在存取內容時要特別小心。

int[] grade = {65,94,83,100};    //index: 0,1,2,3. grade:65,94,83,100
System.out.println(grade[1]);    //Outputs : 94
grade[3] = 54;                   //改變陣列內元素內容
System.out.println(grade[3]);    //Outputs : 54(not 100)
  • 陣列長度與迴圈 :
    有時候我們可能會需要陣列長度,如將其設定為迴圈中的條件判斷。此時可以透過關鍵字length
    →與前述索引值不同的是,索引值皆使從0開始,而長度就單純計算有幾個元素。
String[] name = {"Chi","Jason","Johnson","Jackson"};
int control,condition;
condition = name.length;          //用法 : arrayname.length   //condtion = 4
for(control = 0;control < condition ;control++){
	System.out.println(name[control]);
}

二維(多維)陣列

二維陣列觀念上一開始比較難懂,簡單來說,我們可以把它看成兩個一維陣列。其宣告的方法就是在變數類型後加上兩個中括號,內容的部分會分成兩個大括號包起來,括號與括號&元素與元素間皆用逗號隔開,最外層再一個大括號。

//variableType[][] variableName = { {} , {} };
int[][] numbers = {{1,2,3},{5,6,7,8}};    
System.out.println(numbers[0][1]);    //Outputs : 2
System.out.println(numbers[1][0]);    //Outputs : 5
  • 程式解析 : 第一個中括號代表有幾個一維陣列,第二個中括號配合第一個括號,代表各自陣列中各有幾個元素(ex.第二個陣列的第二個元素 → number[1][1])
    →與一般陣列相同,都是用index存取。
    二維陣列除了可以算陣列長度外,也可以各自算兩個一維陣列中有幾個元素。
int[][] grade = {{54,26,89,67,71},{66,34,54,98}};
grade.length  -> 有幾個一維陣列 //outputs 2
grade[i].length -> 一維陣列中各有幾個元素  //number[0].length ->第一個陣列中有5個元素
																						//number[1].lenght ->第二個陣列中有4個元素

以上內容若有錯誤,煩請不吝嗇告知,謝謝您!!!/images/emoticon/emoticon07.gif


上一篇
Day 9 : 迴圈
下一篇
Day 11 : 函數
系列文
30天Java由淺入深30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言