課程:數組
Array類提供了一種方法,這種方法允許你動態創建和訪問數組。這一節課你將要學到如何使用這些方法。
指定數組
這一節向您展示如何處理當對象是一個數組的時候。
如果你不確定一個特定的對象是一個數組,你可以通過Class.isArray方法麳檢查以下。嚷我們麳看一個例子。
這個示例程序打印數組的名字,這個數組被封裝成一個對象。這個程序執行以下幾步:
1. 它返回Class對象。
2. 獲得Field對象。
3. 對每一個Field對象,程序獲得相應的Class對象通過調用getType方法。
4. 驗證前面步驟返回的Class對象是數組,這個程序調用isArray方法。
以下是源代碼:
輸出如下:
返回組件類型
如果你想發現數組的類型,你將要從這一節的示例中學到。
組件類型是數組元素的類型。例如,arrowKeys數組的組件類型在以下代碼中是Button類型:
通過調用getComponentType方法返回數組元素的組件類型。
示例程序調用getComponentType方法幷且打印出數組中每一個元素的類名。
輸出:
創建數組
這一節將要向您展示在運行時創建數組是多麽的簡單。
如果你正在編寫一個例如應用程序構建器的開發工具,你可能想要允許用戶在運行時創建數組。你的程序可以通過Array.newInstance方法提供這個特性。
以下示例程序使用newInstance方法麳創建一個數組的拷貝,這個數組大小是原來數組的兩倍。newInstance方法接受新數組的長度和組件類型。以下是源代碼:
輸出:
你也可以使用newInstance方法麳創建多維數組。在這個情况下,方法的參數是新數組維數的組件類型和int類型的數組。
以下程序展示如何使用newInstance麳創建多維數組:
獲得和設置元素的值
即使你直到運行時才直到數組名字,你也可以檢查或者修改它元素的值。這一節將要告訴你如何來做。
在許多程序中,訪問數組元素你只是通過賦值表達式麳做:
如果你在運行時才直到數組的名稱的時候這種方式是不可行的。
幸運的是,你可以使用Array類的set和get方法麳訪問數組元素,當在編譯時刻不知道數組名的時候。除了get和set方法,Array類對于原始類型有特定的方法。例如,setInt的參數值是一個int,getBoolean返回的對象是一個boolean類型的包裝類。
示例程序使用set和get方法麳拷貝一個數組的內容到另一個數組。
輸出: