2014-01-21 2 views
0

Я хочу сохранить 4 списка строк в массив с индексом 0-3 и уметь проверять, заполнен ли индекс (! = Null) или нет.Инициализировать массив из списка <String> Объекты

По этой причине мне нужно инициализировать массив типа списка, который терпит неудачу в упадке с сообщением «Не удается создать общий массив List»:

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

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

Doing его, как продвигается на 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

возможно дубликат [Инициализировать массив ArrayList] (http://stackoverflow.com/questions/10227201/initialize-an-array-of-arraylist) –

+1

Потому что «вы не можете создать общий массив» в Java. Это был выбор дизайна, который связан с несоответствием между повторяемостью типов массивов и невосстанавливаемостью параметров типового типа. –

+2

только Cuck Norris может инициировать Интерфейсы: новый Список [myArrayList.size()] !!! :-) –

ответ

0

- общий класс в Java. Вы не можете создать массив общего типа. Это не разрешено. Что вы можете сделать, это создать список общего типа

ArrayList<ArrayList<String>> listOfStringList = new ArrayList<ArrayList<String>>(); 
+0

Спасибо за ответ! Несмотря на это, мне не приходит в голову, почему Java не разрешает это. –

+0

Это будет выбор дизайна, он вызывает проблемы с обратной совместимостью, типами литья и т. Д. – Keerthivasan

+0

Помогло ли вам это понять? – Keerthivasan

Смежные вопросы