При выводе объектов множества без удаления cats имеем на выходе: 14 объектов
Мне казалось, их будет 7 (4 кота и 3 собаки) ... почему их в 2 раза больше?
Sergey JavaRushovich
18 уровень
Добавление кошек и собак
Решен
Комментарии (19)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
KovalSalesforce Developer в success-craft
13 марта 2020, 17:16
Без кода вряд ли кто-то поможет.
0
Sergey JavaRushovich Java Developer
13 марта 2020, 17:24
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);
printPets(pets);
}
public static Set<Cat> createCats() {
Set<Cat> cats = new HashSet<Cat>();
cats.add(new Cat());
cats.add(new Cat());
cats.add(new Cat());
cats.add(new Cat());
return cats;
}
public static Set<Dog> createDogs() {
Set<Dog> dogs = new HashSet<Dog>();
dogs.add(new Dog());
dogs.add(new Dog());
dogs.add(new Dog());
//напишите тут ваш код
return dogs;
}
public static Set<Object> join(Set<Cat> cats, Set<Dog> dogs) {
Set<Object> join = new HashSet<Object>();
join.addAll(cats);
join.addAll(dogs);
return join;
}
public static void removeCats(Set<Object> pets, Set<Cat> cats) {
pets.removeAll(cats);
}
public static void printPets(Set<Object> pets) {
Iterator<Object> iterator = pets.iterator();
while(iterator.hasNext()) {
Object obj = iterator.next();
System.out.println(obj);
}//напишите тут ваш код
}
public static class Cat {
}
public static class Dog {
}//напишите тут ваш код
}
0
KovalSalesforce Developer в success-craft
13 марта 2020, 17:27
А почему ты решил что их 14?
Ты выводил pets?
0
KovalSalesforce Developer в success-craft
13 марта 2020, 17:32
Я проверил код и у меня выводит 7 объектов
0
Sergey JavaRushovich Java Developer
13 марта 2020, 17:46
у меня в консоли было просто 14 объектов, каждый в новой строке
после удаления - 10
0
IceBergMaster
13 марта 2020, 17:51
Этот код выводит ровно 10 элементов, иначе быть не может.
0
Sergey JavaRushovich Java Developer
13 марта 2020, 17:53
да!
но почему не 3?
где произошло удвоение элементов?
добавляли же 3 dogs и 4 cats
0
IceBergMaster
13 марта 2020, 17:55
Какое удвоение, ты же сам написал, что выводит до и после удаления, 7 до, 3 после.
0
Sergey JavaRushovich Java Developer
13 марта 2020, 17:58
ты написал, что код выводит 10 элементов
до удаления - 14 элементов
но я то добавил 7 элементов только
public static Set<Cat> createCats() {
Set<Cat> cats = new HashSet<Cat>();
cats.add(new Cat());
cats.add(new Cat());
cats.add(new Cat());
cats.add(new Cat());
return cats;
}
public static Set<Dog> createDogs() {
Set<Dog> dogs = new HashSet<Dog>();
dogs.add(new Dog());
dogs.add(new Dog());
dogs.add(new Dog());
return dogs;
0
IceBergMaster
13 марта 2020, 18:00
"до удаления - 14 элементов " - да откуда ты вообще взял эти 14??? Ты же сам подтвердил, что выводит 10, значит 7 до удаления.
0
Sergey JavaRushovich Java Developer
13 марта 2020, 18:13
видимо о разном думаем и пишем
этот код у меня вывел 14 строк разных элементов
после удаления их стало 10
я добавлял (add) только 7 объектов
откуда 14 строк
строк не всм String, а
1...
2..
...
14...
0
IceBergMaster
13 марта 2020, 18:14
"этот код у меня вывел 14" - это НЕВОЗМОЖНО, хочешь доказать обратное, предоставь скриншот.
Если бы после удаления их стало 10, то в результате вывелось бы 24 строки.
0
Sergey JavaRushovich Java Developer
13 марта 2020, 18:16
да я решил уже эту задачу
2 раз нельзя тут
0
IceBergMaster
13 марта 2020, 18:17
Скриншот к этому не имеет отношения, он добавляется в комментариях через иконку картинки.
0
Sergey JavaRushovich Java Developer
13 марта 2020, 18:23
я хз как тут эти скриншоты добавлять
поэтому я нашел онлайн компилятор и застестил в нем
10 строк
0
IceBergMaster
13 марта 2020, 18:25решение
Так 10 же, откуда 14??
7 до
3 после
7+3=?
+2
Sergey JavaRushovich Java Developer
13 марта 2020, 18:25
всм 7 до?))))
0
IceBergMaster
13 марта 2020, 18:28полезный
До удаления.
+1
Sergey JavaRushovich Java Developer
13 марта 2020, 18:29
аа.., я понял о чем ты говорил
я не увидел первый println до remove как раз ...
Спасибо, что помог разобраться!
0