ArrayList<String> list = new ArrayList<>();
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
//int m = scan.nextInt();
for (int i = 0; i < n; i++) {
list.add(scan.nextLine());
}
/*for (int k = 0; k < m; k++) {
list.add(list.remove(k));
}*/
System.out.println(list.get(0));
for (int l = 0; l < list.size(); l++){
System.out.println(list.get(l));
}
}
Степан
30 уровень
Помогите разъясните. Если вместо n пишу число например 5, начинаю заполнять массив, дает заполнить, только 4 элемента. Как я понял он дает мне заполнить начиная с индекса под номером 1 или я не понимаю что и как
Обсуждается
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Алексей Java Developer Expert
10 октября 2020, 18:44
Дело не в нумерации с 0, дело в том что сначала Вы используете
int n = scan.nextInt();
а потом используете list.add(scan.nextLine());
И самый первый элемент (с нулевым индексом) у Вас пустой, т.к. берет то, что после первого инта, но до первого перевода строки - как правило, это пустая строка.
Перед заполнением в цикле поставьте еще один scan.nextLine().
Это костыль, но здесь и сейчас должно помочь.
0
Максим
10 октября 2020, 18:42
пример:
int[] array = new int[3];размер массива ->3 (3 елемента)
array[0],array[1],array[2]
array[3] ето уже ArrayIndexOutOfBoundsException
0
Максим
10 октября 2020, 18:40
ем нумерация идет с 0,а не 1
0