2014-03-26 55 views
0

快速的問題。假設我將ArrayListbigArrayList定義爲ArrayListArrayList。我的bigArrayList可以包含除ArrayList之外的其他數據類型嗎?其他數據類型如intString,對象還是簡單數組? ArrayList的創作ArrayList的ArrayList

示例代碼:

ArrayList<ArrayList<String>> bigArrayList = new ArrayList<ArrayList<String>>(); 
    ArrayList<String> smallArrayList = new ArrayList<String>(); 
    bigArrayList.add(smallArrayList); 

    int myInt = 12; 
    bigArrayList.add(smallArrayList); //Acceptable?? 

此外,我將如何去一旦它加入到bigArrayList修改smallArrayList? 在此先感謝。

+0

你告訴我...什麼是泛型的全部點? – TheLostMind

+0

嘗試存儲不同的數據,並告訴我們發生了什麼.. –

回答

3

否,ArrayListArrayLists不能包含除ArrayList之外的其他元素。如果你嘗試把別的東西,你會得到一個編譯錯誤。

你可以,但是,定義bigArrayListArrayList bigArrayList= new ArrayList();沒有任何類型的信息,並且可以存儲任何你想要的,這是非常危險的做法,因此仿製藥。

+0

不妨添加有關編譯器錯誤的信息:'通用陣列創建'... – Astrobleme

1

在集合中使用泛型(「<>」事物)的要點是告訴編譯器,您只將對象的特定類型(及其子類)放入其中。因此,您不能將其他類型放入bigArrayList。 您可以通過不使用泛型來解決此問題,正如darijan所建議的。正如他也警告過的,這不被推薦。

對於修改後smallArrayList其加入到bigArrayList,既可以修改所需要的代碼恢復smallArrayList的從bigArrayList(例如bigArrayList.get(0)和修改)參考或您保留smallArrayList參考,並將其傳遞到所述修改的代碼。

順便說一句,你想用代碼實現什麼?至少可以說,你在這裏試圖做的事情是非常不尋常的。