Java 二維陣列 - 翻轉工作室
文章推薦指數: 80 %
既然陣列是由若干個相同資料型態的變數整合而成,變數的排列格式也延伸了不同的陣列格式。
如果所有變數排列成一行或一列,則稱之為『一維陣列』(如 · 將變數排列成『縱橫』 ...
Java
程式設計(二)
:第三章二維陣列
下一頁
第三章 二維陣列
3-1二維陣列
內容:
3-1-1二維陣列結構
3-1-2二維陣列宣告
3-1-3
範例研討:印出二維陣列內容
3-1-4
範例研討:將二維陣列內容加倍
3-1-5
自我挑戰:印出最高與最低成績者
3-1-6
自我挑戰:成績查詢系統
3-1-1二維陣列結構
既然陣列是由若干個相同資料型態的變數整合而成,變數的排列格式也延伸了不同的陣列格式。
如果所有變數排列成一行或一列,則稱之為『一維陣列』(如array[]);如果排列成平面形狀,則稱為『二維陣列』(如array[][]);如果是立體形狀,則為『三維陣列』(如array[][][]);如是四度空間型態,則是『四維陣列』(如array[][][][]),其中每一維都需要一個變數作為指標,索引其相對位置。
各種陣列型態都有其運用範圍,如沒有特殊情況的話,還是一維與二維陣列的應用最普遍,本書僅介紹到二維陣列,更多維數陣列的處理方式,也大致相同的。
將變數排列成『縱橫』的平面形狀,則稱之為『二維陣列』。
二維陣列需要兩個位置指標,如score[x][y]變數,前面指標(如x)是標示第幾行數(由0開始);第二個指標(如y),則標示第幾列數;如是4*3陣列共計有12個相同型態(int)變數的元素。
另外,陣列被宣告完成之後(如intscore[][]={..})。
以score[][]陣列為例,java利用score.length變數來表該陣列的行數。
又Java允許陣列中各行的列數目不一定要相同,以score[x].length表示該行(x)元素的數目(即是列數目)。
陣列內各元素與行列變數的表示方法,如圖3-1所示。
圖3-1二維陣列的結構
3-1-2二維陣列宣告
陣列的宣告方法有兩種,一者先宣告陣列變數名稱與結構,當需要使用時再指定所需空間,其稱之為動態宣告。
另一者是宣告時就限定空間並給予出直,稱之為靜態宣告。
語法分別如下:
二維陣列宣告語法
範
例
動態宣告
Data_type
Array_name[][];
Array_name=
newData_type[num1][num2];
Data_type[][]
name=newData_type[num1][num2];
intscore[];
score=new
int[20][10];
int[][]
score=newint[20][10];
靜態宣告
Data_type
Array_name[][]={…};
int
score[][]={{1,2,3},
{4,5,6},
{7,8,9},
{10,11,
12}};
第一行語法是宣告產生二維陣列,第二行則再給予初值。
如敘述句如:int[][]score={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};則產生各個元素與變數內容如下:
score[0][0]=1,score[0][1]=2,score[0][2]=3 =>score[0].length=3
score[1][0]=4,score[1][1]=5,score[1][2]=6,score[1][3]=7 =>score[1].length=4
score[2][0]=8,score[2][1]=9 =>score[2].length=2
score[3][0]=10,score[3][1]=11,score[3][2]=12 =>score[3].length=3
score.length=4
3-1-3範例研討:印出二維陣列內容
(A)程式功能:Ex3_1.java
請編寫一程式,印出陣列score[][]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}}內容並依照相對位置排列(平面形狀)。
期望操作介面如下:
D:\Java2_book\chap3>javacEx3_1.java
D:\Java2_book\chap3>javaEx3_1
1 2 3
4 5 6
7 8 8
10 11 12
(B)製作技巧研討:
吾人利用x與y變數作為陣列位置索引,x是行數指標,y為列數指標,則任何一元素可由score[x][y]表示。
如欲平面型態印出陣列內容,則需要二重迴圈敘述,外迴圈標示共計列印幾行(x=0,1,…,score.length);內迴圈索引每行的列數(y=0,1,2,…,score[x].length)。
(C)程式範例:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
//Ex3_1.java
publicclassEx3_1{
publicstaticvoidmain(Stringargs[]){
intscore[][]={{1,2,3},
{4,5,6},
{7,8,8},
{10,11,12}};
intx; //
行指標
(外迴圈)
inty; //
列指標
(內迴圈)
for(x=0;x
圖3-2Ex3-2程式架構
(C)程式範例
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//Ex3_2.java
publicclass
Ex3_2{
/*宣告類別變數
score[]*/
staticint
score[][]={{1,2,3},
{4,5,6},
{7,8,8},
{10,11,12}};
/*
主程式
main()*/
public
staticvoidmain(Stringargs[]){
System.out.printf("原陣列內容:\n");
disp_Arr();
for(intx=0;x
吾人可利用兩只一維陣列(max[]與min[])儲存最高成績與最低成績,其中第0列(如max[0])儲存學號、第1列(如max[1])存放成績。
圖3-#為搜尋運作程序,起先將最高成績的陣列設定為0(max={0,0});最低成績設定成超過成績界線(min={0,999}),再依序比較每位學生成績,如果高於max,則該紀錄複製到max陣列內;如果低於min,則複製到min上。
如此由第0筆到最後一筆搜尋之後,max與 min陣列分別得到最高與最低成績的紀錄。
虛擬碼提示如下:
圖3-3最高與最低成績搜尋
01
02
03
04
05
06
07
08
09
10
宣告成績儲存陣列並給初值(int
score[][]={{411101,70},…});
宣告最高成績陣列(int
max[]={0,0});
宣告最低成績陣列(int
min[]={0,9999});
搜尋最高與最低成績者:
for(inti=0;i
延伸文章資訊
- 1Java 二維陣列 - 翻轉工作室
既然陣列是由若干個相同資料型態的變數整合而成,變數的排列格式也延伸了不同的陣列格式。如果所有變數排列成一行或一列,則稱之為『一維陣列』(如 · 將變數排列成『縱橫』 ...
- 2Java :: 陣列
若要用程式記錄Java 小考成績,有10 名學生,只使用變數的話, ... 一維陣列使用一個索引存取陣列元素,你也可以宣告二維陣列,二維陣列使用兩個索引 ...
- 3二維陣列| Java SE 6 技術手冊 - caterpillar
在上面的宣告中,arr 是個int[] 型態的參考名稱,程式會為arr 配置可以儲存10 個int 整數的一維陣列物件,索引為0 到9,初始值預設為0,在Java 中配置陣列之後,若還沒有 ...
- 4如何在Java 中獲取一個二維陣列的長度 - Delft Stack
Java 中的二維陣列是一個陣列的陣列,即一個陣列的元素是另一個陣列。例如, test = new int[5][10]; 代表一個包含5 個元素的陣列,這5 個元素分別 ...
- 5Java 學習筆記[7] 陣列2 - iT 邦幫忙
... 筆記[7] 陣列2. Java 學習筆記系列第7 篇 ... 二維陣列顧名思義就是使用兩個索引來指定存取陣列中的元素, ... 上述的宣告,可以清楚看出來二維陣列的索引方式,.