Добрый день,
пожалуйста объясните прям на пальцах почему тут
пример 1
for (int i = 0; i < list.size()-1; ){ // почему тут list.size(-1)??
if (list.get(i).length()<=list.get(i+1).length())
i++;
else {
System.out.println(i+1);
break;
}
пример 2
for (int i = 0; i <5 ; i++) {
String a = scaner.nextLine();
list.add(a);
}
for (int i = list.size() -1; i >= 0; i--){ // почему тут так же -1 (у меня список из 5 элементов, если я вместо list.size() -1
напишу 5, то ничего не работает.
System.out.println(list.get(i));
}
Игорь Пак
9 уровень
объясните очень подробно
Решен
Комментарии (9)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Виктор
10 мая 2020, 13:56
В массивах нумерация начинается с 0, следовательно последний элемент имеет какой индекс?
Вот полезная ссылка: https://javarush.com/groups/posts/massivy-java
0
Игорь Пак
10 мая 2020, 13:57
если 5 элементов то у последнего индекс будет 4.
0
Игорь Пак
10 мая 2020, 14:01
с примером 2 понятно
ставим 4 и все работает.
for (int i = 4; i >= 0; i--)
а в первом примере как?
0
Виктор
10 мая 2020, 14:27
если ты напишешь list.size(), то в этом месте, так как ты сравниваешь с последующим элементом массива list.get(i+1). Ты выйдешь за пределы массива и программа завершиться с ошибкой
0
Игорь Пак
10 мая 2020, 14:52
пример
qwe asd zxc количество объектов в коллекции 3
[ind0] [ind1] [ind2] i max [ind 2]
записать я могу так for (int i = 0; i <3; ) верно1?
когда пойдет сравнение zxc c условием (i + 1), тогда я выйду за пределы массива, верно2 ??
зачем мне в условии делать for (int i = 0; i < 3 -1 (равно 2); )
или я что то совсем не догоняю((
0
Виктор
10 мая 2020, 14:58
Да, так написать можно, но правильно list.size()-1 в данном случае, так как алгоритм сможет работать с разной длинной массива
0
Игорь Пак
10 мая 2020, 15:11
вроде понял
цикл будет 2 раза вместо 3
1 раз qwe сравниваем с asd
2 раз asd сравниваем с zxc
если бы было 3 раза, то zxc выходил бы за пределы
правильно?)
0
Виктор
10 мая 2020, 15:23решение
Для начала, чтобы хорошо разобраться как работает массив расписывай на бумаге, что происходит в массиве во время итераций.
Посмотри это видео: https://www.youtube.com/watch?v=XD8azAEOu9U
Я так же вначале плохо понимал, как работает массив
+1
Игорь Пак
10 мая 2020, 15:24
спасибо!
0