《Java大學教程》—第16章 二維數(shù)組
多維(Multi-dimensional)數(shù)組維數(shù)由索引個數(shù)決定。
常用的數(shù)組:一維(one-dimensional)數(shù)組、二維(two-dimensional)數(shù)組
16.2 創(chuàng)建二維數(shù)組
索引從0開始,創(chuàng)建成表格,第一個索引是行索引,第二個索引是列索引。
length屬性:第一個索引的長度。
16.3 初始化二維數(shù)組:數(shù)值用逗號分隔,行用大括號分隔。
16.4 不規(guī)則數(shù)組(ragged array):可變列數(shù)的二維數(shù)組。
如果只聲明但不初始化不規(guī)則二維數(shù)組,必須聲明行數(shù)(第一索引),可以不聲明列數(shù)(第二索引)。
問:不規(guī)則數(shù)組只能是二維嗎?
答:不規(guī)則數(shù)組可以是多維,并且都是必須聲明第一索引就可以了。
自測題:
1. 考慮下列數(shù)組聲明語句,該數(shù)組用于存儲學生成績的集合
char [][] grades=new char[4][20];
a) 該數(shù)組有幾個維度?
2個
b) grades.length的值是多少?
4
c) grades[0].length的值是多少?
20
d) 第一組第一個學生的成績?yōu)锽
grades[0][0]='B';
2. 聲明合適的數(shù)組
a) 進球數(shù):20個球隊,38場比賽
int scores[20][38];
b) 座位:70行座位,每行20個座位
boolean seats[70][20];
3. 記錄火車晚點情況
a) 一年中第幾周,每周中第幾天晚點次數(shù)
int late[52][7];
b)
int daysNum=0; for (int i=0;i<52;i++) for (int j=0;j<7;j++) if (late[i][j]==2) daysNum++;
4.
a) 規(guī)則二維數(shù)組與不規(guī)則二維數(shù)組的區(qū)別:P390
列數(shù)(第二索引)是固定的還是可變的。
b) 不規(guī)則二維數(shù)組triangle
int [][] triangle = new int[4][]; for (int i=0;i<4;i++) triangle[i]=new int[i+1];
c) triangle中的最大值
int biggestNum; biggestNum=triangle[0][0]; for (int i=1;i<4;i++) for (int j=0;j<triangle[i].length;j++) if (biggestNum < triangle[i][j]) biggestNum=triangle[i][j];
5. 網(wǎng)格布局策略:P397
允許為將要添加的元素設定行數(shù)和列數(shù)。排列方式由系統(tǒng)設定,默認為從左到右,從上到下。
編程練習:代碼附件
1. VarNoughtsAndCrosses.java RunVarNoughtsAndCrosses.java
2. CheckTrain.java CheckTrainTest.java InvalidDateException.java
3. TimeTable.java TimeTableException.java TimeTableTest.java
TimeTableGUI.java RunTimeTableGUI.java 做界面太消耗時間了,暫時不做了。
posted on 2016-09-29 21:56 zYx.Tom 閱讀(326) 評論(0) 編輯 收藏 所屬分類: 1.Java世界