2013-04-19 32 views

回答

4

雖然沒有性能差異,但第二種方法提供了非常優越的API,因爲Java陣列總是可變的。第一個API可以讓你的用戶編寫

object.getCoord()[1] = 12.345; 

並修改你背後的對象的內部。這絕不是一件好事:即使是非惡意用戶也可以做你從未想過的事情,只是錯誤。

+0

+1用於指出可變性問題。 – vijay

0

不,Java在使用下標運算符([])時不讀取整個數組。關於使用訪問器方法首先獲取數組,最好使用索引,然後調用一個方法來執行相同的操作,但這可能可以忽略不計。你仍然承擔調用一個函數並返回結果的開銷(最簡單的你)。

1

就性能而言,沒關係。第一個方法返回對數組的引用,而不是副本。

也就是說,第二種方法可以防止數組在外部被修改。

0

我會猜測#2稍微慢一些,因爲在調用getCoord(int)之前必須將參數壓入堆棧。雖然沒有太多。

既不必讀取整個數組。

兩者都比直接數組訪問慢,例如coord [1]。

相關問題