首先讓我滿足你的第二個問題,並在JVM中數組和列表之間的較大差異:
陣列,並在Java中的列表是從零開始,這意味着第一個元素中可以找到一個[ 0],最後一個元素放在[a.size() - 1]中。元素a [a.size()]超出了數組的邊界,這就是你的例外告訴你的。
在groovy中,如果您想要拾取數組/列表的最後一個元素,可以使用a.last(),在我看來,它更具可讀性和自我解釋性。
如果您在填充mylongs之前將其填充到數組中,那麼您已經修復了數組的大小,並且可以不再向其中插入更多的對象。如果你的數組有可變大小,那麼你需要使用一個List。
List<Long> a=[]
a << 1 as long
a << 2 as long
等
當你需要將其轉換回一個數組,你可以這樣做:
a as long[]
我們的第一個問題的答案,其他人幾乎都給你一個有效的答案,但在groovy風格,我會寫(提供somebject是某種類型的集合):
def mylongs= somebject.collect{ it.thisisalong } as long[]
但推一個元素的列表,並就像這樣,在常規風格:
myLongs << 4
您不能追加值到一個數組,它有一個固定的大小。
也許[文檔的這一部分](http://groovy-lang.org/groovy-dev-kit.html#_adding_or_removing_elements)會對您有所幫助。 – 2015-04-01 00:48:20
如果有人給出了滿意的答案,你會介意分配嗎? – loteq 2015-04-15 17:38:07