public class Solution {
public static void main(String[] args) {
Set<Cat> cats = createCats();
// Вот как тут удалить котов?
cats.remove();
printCats(cats);
}
public static Set<Cat> createCats() {
Set<Cat> cats = new HashSet<Cat>();
// Вот тут я создаю 3х котов и заношу их в Set, но на них нет ссылок, как мне их удалить из метода main?
for (int i = 0; i < 3; i++) {
cats.add(new Cat());
}
return cats;
}
public static void printCats(Set<Cat> cats) {
for (int i = 0; i < cats.size(); i++) {
System.out.println(cats);
}
}
public static class Cat {
private String name;
Cat() {
this.name = "Вася";
}
}
}
anmani2007
22 уровень
Как удалить объекты из множества, если на них нет ссылок, но они в этом самом множестве?
Решен
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Стас Пасинков Software Developer в Zipy Master
14 марта 2018, 00:53решение
нуу, например итератором.
еще есть метод remove(), который удаляет конкретный объект из множества. но конкретно в этой реализации задачи вы не сохраняете ссылки на объекты, поэтому удалить элемент этим методом не можете
а как вы до этого с множествами работали? как получали элементы из множества например?)
+2
anmani2007
14 марта 2018, 12:37
Так как set – это множество ненумерованных объектов, то тут либо перебор в цикле по размеру кучи, либо, как вы сказали итератор)
+1