/*
Множество всех животных
*/
public class Solution {
public static void main(String[] args) {
Set<Cat> cats = createCats();
Set<Dog> dogs = createDogs();
Set<Object> pets = join(cats, dogs);
printPets(pets);
removeCats(pets, cats);
System.out.println();
printPets(pets);
}
public static Set<Cat> createCats() {
HashSet<Cat> result = new HashSet<Cat>();
//напишите тут ваш код
for (int i = 0; i < 4; i++) {
result.add(new Cat());
}
return result;
}
public static Set<Dog> createDogs() {
//напишите тут ваш код
HashSet<Dog> result = new HashSet<Dog>();
for (int i = 0; i < 3; i++) {
result.add(new Dog());
}
return result;
}
public static Set<Object> join(Set<Cat> cats, Set<Dog> dogs) {
//напишите тут ваш код
HashSet pets = new HashSet();
pets.addAll(cats);
pets.addAll(dogs);
return pets;
}
public static void removeCats(Set<Object> pets, Set<Cat> cats) {
//напишите тут ваш код
Iterator<Object> petsIterator = pets.iterator();
if (petsIterator.hasNext()){
pets.remove(cats);
}
}
public static void printPets(Set<Object> pets) {
//напишите тут ваш код
for (Object pet : pets) {
System.out.println(pet);
}
}
//напишите тут ваш код
public static class Cat{
public Cat() {
}
}
public static class Dog{
public Dog() {
}
}
}
Лера
17 уровень
Почему в методе removeCats коты не удаляются из pets?
Решен
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
--------Master
21 января 2019, 08:04решение
Потому, что метод remove пытается найти и удалить конкретный объект cats, а не перебирает и не удаляет элементы этого множества (для этого есть другой метод)
+3
Лера
21 января 2019, 20:07
Всё равно не понимаю( почему тогда нет ошибки?
0
--------Master
21 января 2019, 20:10
Потому, что Set<Object>, но объект cats в нем не находится, ошибка при этом не предусмотрена - метод remove просто ничего не удаляет
0
Лера
23 января 2019, 21:19
Спасибо
+1