@Koshkasobaka

Java. Почему цикл не воспринимает размер списка?

Здравствуйте. Только начала работать со списками и не могу понять один момент. Я создаю список строк и сразу указываю в скобках размер списка (10). Далее хочу заполнить список, и тут, если в шапке цикла указать i < list.size(), то консоль выдает: Process finished with exit code 0. А если пишу i < 10, то все ОК. Потом, когда вывожу список на экран, программа спокойно принимает i < list.size(), но тут понятно, возвращается размер списка. Но почему он не видит его в первом цикле?
ArrayList<String> list = new ArrayList<>(10);
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
          for (int i = 0; i < 10; i++) {                     // вот тут хочу  list.size()
            System.out.println("строка: ");
            String s = reader.readLine();
            list.add(0, s);
        }

       for (int i = 0; i < list.size(); i++)
           System.out.println(list.get(i));
  • Вопрос задан
  • 121 просмотр
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Потому что метод size возвращает количество элементов в списке, а передаваемое в конструктор число обозначает начальную ёмкость списка. Образно говоря, если вы взяли трёхлитровую банку - это ещё не значит, что в ней есть три литра воды.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Koshkasobaka для того чтобы инициализировать список фиксированной длины часто использутся
что то вроде
List<String> names = new ArrayList<>(
				Arrays.asList(new String[] { "ильф", "петров" }));


можно и подруному конечно но так помоему довольно удобено
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы