Подскажите пожалуйста такой момент:
Хочу заполнить массив из 20 чисел:
Вот этот код проходит
ArrayList<Integer> list = new ArrayList<Integer>(20);
BufferedReader reader = new BufferedReader (new InputStreamReader(System.in));
for(int i = 0; i < 20; i++)
{
int n = Integer.parseInt(reader.readLine());
list.add(n);
}
А этот нет
ArrayList<Integer> list = new ArrayList<Integer>(20);
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
for(int i = 0; i < list.size(); i++)
{
list.add(Integer.parseInt(reader.readLine()));
}
В чем причина? Ошибка в коде?
Александра
19 уровень
Помогите разобраться почему при заполнении массива нужно указывать длину массива числом а не list.size()?
Решен
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
IceBergMaster
18 августа 2019, 09:13полезный
Потому что size() будет равно нулю.
+1
Александра
19 августа 2019, 12:31решение
Спасибо, я теперь разобралась, Размер - количество элементов в списке;
Емкость - это количество элементов, которые список может использовать без перераспределения внутренних структур.
Когда вы вызываете new ArrayList<Integer>(20), вы устанавливаете начальную емкость списка, а не ее размер. Другими словами, при построении таким образом список массивов начинает свою жизнь пустой.
+2