Почему не проходило валидацию с моим решением???
public class Example {
public static void main(String[] args) {
Set<Cat> cats = createCats();
//напишите тут ваш код. step 3 - пункт 3
Iterator<Cat> iterator = cats.iterator();
while (iterator.hasNext()) {
iterator.next();
iterator.next();
cats.remove(iterator.next()); //да, колхоз, но это последнее решение из многих на проверку, потом оказалось что не в нем проблема.
}
printCats(cats);
}
public static Set<Cat> createCats() {
//напишите тут ваш код. step 2 - пункт 2
Set<Cat> catsSet = new HashSet<>();
Cat cat1 = new Cat();
Cat cat2 = new Cat();
Cat cat3 = new Cat();
catsSet.add(cat1); // ВОТ КОРЕНЬ ЗЛА! Потому что для правильного решения требуется cats.add(new Cat()) три раза.
catsSet.add(cat2);
catsSet.add(cat3);
return catsSet;
}
public static void printCats(Set<Cat> cats) {
// step 4 - пункт 4
for (Cat catsPrint : cats) {
System.out.println(catsPrint);
}
}
// step 1 - пункт 1
public static class Cat {
Cat() {
}
}
}
Tyrant
10 уровень
Помощь в разъяснении уже решенной задачи. Метод main() должен удалять одного кота из множества котов.
Решен
Комментарии (19)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Tyrant
16 ноября 2018, 16:04
Почему когда я сам создал:
Cat cat1 = new Cat();
Cat cat2 = new Cat();
Cat cat3 = new Cat();
catsSet.add(cat1);
catsSet.add(cat2);
catsSet.add(cat3);
потом удалил одного из них, на экран вывел двух котов НО не проходило проверку, а когда подсмотрел, что люди добавляют cats.add(new Cat()) три раза, то все работает?
В чем тут разница???
0
--------Master
16 ноября 2018, 16:18
Между
и разницы, по сути, никакой, если речь об этом 0
Tyrant
16 ноября 2018, 16:35
Вот и я о том же! Но какого-то чуда задача не проходила проверку, я себе мозг и так и сяк ломал, и через массивы, и через if с счетчиками и т.д.
0
--------Master
16 ноября 2018, 16:45
Ты точно 3 раза добавлял объект?
0
Tyrant
16 ноября 2018, 16:50
Вот мой код:
Set<Cat> catsSet = new HashSet<>();
Cat cat1 = new Cat();
Cat cat2 = new Cat();
Cat cat3 = new Cat();
catsSet.add(cat1);
catsSet.add(cat2);
catsSet.add(cat3);
А вот правильный код для прохождения проверки:
Set<Cat> catsSet= new HashSet<>();
catsSet.add(new Cat());
catsSet.add(new Cat());
catsSet.add(new Cat());
0
hidden #598481
16 ноября 2018, 17:05
Пришли весь код, который ты пытался отправить до успешного прохождения проверки, от верха до низа.
И используй разметку (кнопочка code на панельке), чтобы он был читаемый.
0
Tyrant
16 ноября 2018, 17:12
Уппс, сорян, первый раз вот так жалуюсь на несправедливую жизнь на JR .
Задача task0819
Я просто хотел уточнить, что это прихоти JR или я чего-то не так понял из условия или про объекты познания хромают. 0
hidden #598481
16 ноября 2018, 17:25
Задача:
Код:
Мне кажется, проблема в этом, не? 0
Tyrant
16 ноября 2018, 17:28
Нет. Это я у себя с IDE скопировал. В валидаторе Solution.
0
hidden #598481
19 ноября 2018, 08:55
Что значит "в валидаторе"?
0
Tyrant
19 ноября 2018, 11:08
На JavaRush-компиляторе.
На сколько я понял, это просто глупый бзик JR. Типа 2+2 = 1+3, но писать надо именно 2+2.
0
Артем Divertitto Senior Android-разработчи в United Tech Master
21 ноября 2018, 08:02
Надо писать Solution
0
Артем Divertitto Senior Android-разработчи в United Tech Master
21 ноября 2018, 08:03
В следующем коде у тебя исключение. Так нельзя удалять
0
Anatoliy
21 ноября 2018, 09:16
И сразу видно, что код в IDE ни разу даже не попытались запустить.
0
Tyrant
21 ноября 2018, 12:56
Но JR такой вариант удаления приняло.
0
Артем Divertitto Senior Android-разработчи в United Tech Master
21 ноября 2018, 13:56
Покажи где так написано?
0
Tyrant
21 ноября 2018, 16:50
А вот код, который НЕ прошел проверку на JR:
0
Артем Divertitto Senior Android-разработчи в United Tech Master
22 ноября 2018, 07:37полезный
У меня оба прошли
+1
Tyrant
22 ноября 2018, 11:50решение
А у меня не пропустил, из-за чего у меня не слабо подгорало.
Ну в принципе я узнал главное: разницы никакой нет, а не пропустило - это просто "чудеса небесные"
Вопрос можно считать закрытым.
+2