public static void printPets(Set<Object> pets) {
Почему такой вариант не проходит?
Iterator<Object> iterator = pets.iterator();
while (iterator.hasNext()){
Object pet = iterator.hasNext();
System.out.println(pet);
Эти проходят.
for (Object p : pets){
System.out.println(p);
}
pets.forEach(System.out::println);
}
Александр Колосов
36 уровень
Вопрос по работе метода -
Решен
Комментарии (10)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
--------Master
22 октября 2018, 15:19
А ты вообще пробовал запускать первый метод, смотреть, что он в консоль выводит?
0
Александр Колосов
22 октября 2018, 15:25
Да. Постоянно выводит "true".
Через "for" идет. В курсе говорится, что это сокращенная запись.
Если так, то почему сокращенная запись проходит, а полная нет?
0
Евгений Enterprise Java Developer Expert
22 октября 2018, 15:27
Ну, переменной String text чего присваивается?
0
--------Master
22 октября 2018, 15:32
Это не сокращенная запись, а результат работы метода, который ты вызываешь у итератора)) Ты не берешь следующий элемент (это другой метод), а только проверяешь, есть ли он, тебе возвращается, что есть, и так по кругу бесконечно
0
Александр Колосов
22 октября 2018, 15:34
Хорошо. А как тогда будет выглядеть правильный код, через итератор )))?
0
--------Master
22 октября 2018, 15:36
У интерфейса Iterator всего 3 метода, по названию ясно, какой тебе нужен))
0
Евгений Enterprise Java Developer Expert
22 октября 2018, 15:36
Ну посмотри на картинку, которую прикрепил )))) Там же все есть ) Внимательно прям))) Три метода у итератора ) Два немного похожи по написанию )
+1
Александр Колосов
22 октября 2018, 15:37решение
я допёр )))
Object pet = iterator.hasNext();
должно быть
Object pet = iterator.next();
+3
Евгений Enterprise Java Developer Expert
22 октября 2018, 15:18
boolean hasNext()
Returns true if the iteration has more elements. (In other words, returns true if next() would return an element rather than throwing an exception.)
Returns:
true if the iteration has more elements
0
Александр Колосов
22 октября 2018, 15:34
Благодарю, Евгений.
0