2013-06-25 37 views
1

如果我設計列表,我會使它像這樣 - new ArrayList("1","2")。 給它一個構造函數,並立即添加一些東西。 爲什麼Java不這樣做?爲什麼Java設計人員不這樣做---新的ArrayList(「1」,「2」)

+2

我猜想主要的原因是當Collections API寫入時沒有vargs或泛型。 Collections API的日期可以追溯到Java 1.2 – MadProgrammer

+1

我認爲,如果您已經知道列表中的元素(將它們硬編碼),那麼您可以使用數組。當你無法預先知道列表中有多少元素時,ArrayLists更適用於因爲需要添加更多元素而比單獨創建和丟棄數組更有效。所以需要有這樣的構造函數是否定的,因爲數組對於固定的已知列表更好。對? – ADTC

回答

7

因爲沒有構造函數會接受兩個字符串或vargs。爲了克服這個問題,你可以打電話:new ArrayList<String>(Arrays.asList("1", "2"))

+3

+1爲認真考慮這個問題 – aaronman

+0

不錯的使用'Arrays.asList',必須記住這一點 – Patashu

+1

最好是用'String'類型參數化'ArrayList'。 – arshajii

相關問題