2014-01-21 31 views
0

我想將4個字符串列表存儲到索引0-3內的一個數組,並且能夠檢查索引是否填滿(!= null)。初始化列表數組<String>對象

出於這個原因,我需要初始化類型列表數組,從而未能在Eclipse中的消息「無法創建列表的通用陣列」:

// Does not work 
List<String>[] myArray = new List<String>[4]; 

// Does not work 
List<String>[] myArray = new ArrayList<String>[4]; 

做它像推動在Convert an ArrayList to an object array

ArrayList<List<String>> myArrayList = new ArrayList<List<String>>(); 
myArrayList.add(new ArrayList<String>()); 
myArrayList.add(new ArrayList<String>()); 
myArrayList.add(new ArrayList<String>()); 
myArrayList.add(new ArrayList<String>()); 

// Does not work 
List<String>[] myArray = myArrayList.toArray(new List<String>[myArrayList.size()]); 

// Does not work 
List<String>[] myArray = myArrayList.toArray(new ArrayList<String [myArrayList.size()]); 

但爲什麼這不起作用?

+0

可能重複(http://stackoverflow.com/questions/10227201/initialize-an-array-of-arraylist) –

+1

因爲「你不能在Java中創建一個通用數組」。這是一個設計選擇,它與數組類型的可重構性與泛型類型參數的不可重構性之間的不匹配有關。 –

+2

只Cuck Norris可以啓動接口:新列表 [myArrayList.size()] !!! :-) –

回答

0

ArrayList是Java中的通用類。您不能創建一個通用類型的數組。不允許。你可以做的是創建通用類型的列表

ArrayList<ArrayList<String>> listOfStringList = new ArrayList<ArrayList<String>>(); 
的[初始化ArrayList中的數組]
+0

感謝您的回答!儘管如此,它並沒有出現在我的腦海,爲什麼Java不會這麼做。 –

+0

這將是設計選擇,它會導致向後兼容性問題,類型鑄造問題等。 – Keerthivasan

+0

它有助於你理解嗎? – Keerthivasan