Hi. I have tried using for each method as well as removeAll but both seem to not work. Please help me and explain me why :). Thank you for your time
package pl.codegym.task.task08.task0820;
import java.util.HashSet;
import java.util.Set;
/*
Zwierzęcy secik
*/
public class Solution {
public static class Kot {
}
public static class Pies {
}
public static void main(String[] args) {
Set<Kot> koty = utworzKoty();
Set<Pies> psy = utworzPsy();
Set<Object> zwierzeta = dolacz(koty, psy);
printZwierzeta(zwierzeta);
usunKoty(zwierzeta, koty);
printZwierzeta(zwierzeta);
}
public static Set<Kot> utworzKoty() {
HashSet<Kot> wynik = new HashSet<Kot>();
Kot kot = new Kot();
Kot kot1 = new Kot();
Kot kot2 = new Kot();
Kot kot3 = new Kot();
wynik.add(kot);
wynik.add(kot1);
wynik.add(kot2);
wynik.add(kot3);
return wynik;
}
public static Set<Pies> utworzPsy() {
Set<Pies> psy = new HashSet<>();
Pies pies = new Pies();
Pies pies1 = new Pies();
Pies pies2 = new Pies();
psy.add(pies);
psy.add(pies1);
psy.add(pies2);
return psy;
}
public static Set<Object> dolacz(Set<Kot> koty, Set<Pies> psy) {
Set<Object> zwierzeta = new HashSet<>();
zwierzeta.addAll(psy);
zwierzeta.addAll(koty);
return zwierzeta;
}
public static void usunKoty(Set<Object> zwierzeta, Set<Kot> koty) {
for (Kot kot : koty) {
zwierzeta.remove(kot);
}
// This method is also not working. Why is that? zwierzeta.removeAll(koty);
}
public static void printZwierzeta(Set<Object> zwierzeta) {
for (Object s : zwierzeta) {
System.out.println(s);
}
}
}