2013-03-28 69 views
2

當我使用泛型保存Java中的原始數組時,實際上存儲在數組中的實現了一個Collection?使用泛型來定義集合意味着我只能存儲一個對象,如果我要這麼做ArrayList<Integer>我可以添加一個int,但是這是自動複製到IntegerJava集合中的原始數組

如果我要定義ArrayList<int[]>它完全合法,因爲數組是對象。我不確定如果實際上最終存儲在集合中的結果是Integer[],因爲編譯器執行了一些轉換並將使用自動裝箱添加到該陣列,或者如果我可以存儲int[],並且該集合將存儲基元數組作爲陣列本身就是一個對象。

回答

1

ArrayList<int[]>將存儲基元數組。不會涉及自動裝箱。

在Java中,任何類型的數組 - 無論是否爲 - 是一個對象,因此與泛型兼容。

與的int[]容器無意中最終甚至可以,如從昨天所示通過這個有趣的問題:Java containsAll does not return true when given lists