天天看點

Java核心技術卷I基礎知識3.10.7 不規則數組

<b>3.10.7 不規則數組</b>

到目前為止,讀者所看到的數組與其他程式設計語言中提供的數組沒有多大差別。但實際存在着一些細微的差異,而這正是java的優勢所在:java實際上沒有多元數組,隻有一維數組。多元數組被解釋為“數組的數組。”

例如,在前面的示例中,balances數組實際上是一個包含10個元素的數組,而每個元素又是一個由6個浮點數組成的數組(請參看圖3-15)。

圖3-15 一個二維數組

表達式balances[i]引用第i個子數組,也就是二維表的第i行。它本身也是一個數組,balances[i][j]引用這個數組的第j項。

由于可以單獨地存取數組的某一行,是以可以讓兩行交換。

還可以友善地構造一個“不規則”數組,即數組的每一行有不同的長度。下面是一個典型的示例。在這個示例中,建立一個數組,第i行第j列将存放“從i個數值中抽取j個數值”産生的結果。

由于j不可能大于i,是以矩陣是三角形的。第i行有i + 1個元素(允許抽取0個元素,也是一種選擇)。要想建立一個不規則的數組,首先需要配置設定一個具有所含行數的數組。

接下來,配置設定這些行。

在配置設定了數組之後,假定沒有超出邊界,就可以采用通常的方式通路其中的元素了。

程式清單3-9給出了完整的程式。

      c++注釋:在c++中,java聲明

不同于

也不同于

而是配置設定了一個包含10個指針的數組:

然後,指針數組的每一個元素被填充了一個包含6個數字的數組:

慶幸的是,當建立new double[10][6]時,這個循環将自動地執行。當需要不規則的數組時,隻能單獨地建立行數組。

程式清單3-9 lotteryarray/lotteryarray.java

現在,已經看到了java語言的基本程式結構,下一章将介紹java中的面向對象的程式設計。