for (String s : map.values()){
if(s.equals(name)){
count++;
}
Если не сложно могли бы написать развернутый цикл, не могу разобраться, какое значение принимает String s
ВЛАДИМИР
17 уровень
Подскажите как работает данный цикл?
Решен
Комментарии (10)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Sergey Vladimirovich
23 апреля 2019, 12:10
Я совсем запутался:
for (Iterator<String> iterator = map.values().iterator(); iterator.hasNext(); ) {
String s = iterator.next();
if (s.equals(name)) {
count++;
}
и
for (String s : map.values()){
if(s.equals(name)){
count++;
}
Одно и тоже?
0
ВЛАДИМИР
25 апреля 2019, 04:59
Как я понял, да одно и тоже)
0
Стас Пасинков Software Developer в Zipy Master
26 апреля 2019, 00:36
по сути да. форич работает как-раз на итераторах.
к тому же он и читается значительно проще, чем тот треш в первом варианте :)
0
Иван Мозгачев
22 апреля 2019, 16:39
Если все ясно, тогда вопрос переводи в статус - решен)
0
Стас Пасинков Software Developer в Zipy Master
19 апреля 2019, 12:30
если работаете в идее - то ставите курсор на фор и жмете Alt+Enter потом выбираете что-то типа Replace with indexed for loop
0
ВЛАДИМИР
20 апреля 2019, 22:52
Спасибо)
0
hidden #2054204
19 апреля 2019, 10:50
Это цикл for each.
В данном случае он делает следующее.
Перевожу на "человеческий". Сценка. :)
Действующие лица: Цикл, Метод.
Метод:
- Привет, Цикл! Тут мне на вход данные поступили. Пришла мапа и name. Что делаем?
Цикл:
- Ты перебери всю мапу, бери из каждой пары "ключ/значение" только value и присваивай переменной String s это значение . Присвоив, сравни s со значением переменной name, если такое же - увеличивай count на единичку. Выполняй по-новой, пока не переберешь всю мапу!
Метод:
- Ок, ясно. Сделаем!
А если обобщенно, то цикл for each означает, что нужно совершить действие (тело цикла), над каждым элементом указанного множества.
Т.е.
for (элемент : множество){
действие
}
Применяем тогда, когда нам нужно совершить одно и то же действие над ВСЕМИ элементами множества, без учета их позиции.
+5
DiamondCoder Backend Developer
19 апреля 2019, 12:04
тогда уж не из пары "ключ/значение", а только из списка значений. map.values() - только список значений.
0
hidden #2054204
19 апреля 2019, 12:58
Я умышленно сформулировал именно так, поскольку пытался максимально просто донести логику именно фор-ича (то, что ТС и спрашивал), а не процесс получения списка значений из мапы.
Хотя с другой стороны - Вы правы и можно было дорасписать и этот процесс, Хоть ТС и спрашивал не об этом.
Авторскими правами сценарий миниатюры не защищен, так что можете смело копировать и дописать абзац с соответствующими пояснениями. :)
0
ВЛАДИМИР
20 апреля 2019, 22:52
Спасибо все стало ясно)
0