Я создал список, содержащий списки целых чисел. Я понял вопрос, потому что мой recipe
(внешний список) пуст.Получение списка из ArrayList throwing IndexOutOfBoundsException
Мой код:
Scanner sc = new Scanner(System.in);
int t = sc.nextInt(); // t=4
List<List<Integer>> recipe = new ArrayList<List<Integer>>(t+1);
for(int i=1 ; i<t+1 ; i++){
for (int l = 1; l <= 4; l++) {
recipe.get(l).add(i);
}
}
Чтобы исправить это, все, что я могу думать, это,
for(int i= 0; i<t+1 ;i++){
recipe.add(new ArrayList<Integer>());
}
Есть ли лучший способ сделать это?
Как и при создании Array
, вы можете позвонить по любому индексу.
«Я понял, проблема, потому что мой рецепт (внешний список) пуст ». Какая проблема? – vefthym
'recipe.get (l)' строка 6 в коде вызывает ошибку IndexOutOfBounds. – Charan
«Как вы думаете, новый ArrayList (размер)' делает »-« То же, что «массив» делает «нет», массивы заполняются элементами по умолчанию: '0'' false' 'null', но в случае коллекций вы устанавливают начальную емкость своей внутренней структуры, а не размер сбора. 'recipe.add (новый ArrayList());' является правильным решением для вашей проблемы. –
Pshemo