Сравнение объекта с объектами в коллекции

Всем доброго времени суток. Есть объект Cat. Есть коллекция private Map<Long, Cat> dataBase в который хранятся другие объекты и их id. У объекта Cat условно несколько полей (например name и weight). Задача в том, чтобы написать метод в параметры которого передается (Cat cat) и надо понять, есть ли такой объект в коллекции. (Если что я делаю регистрацию, но это уже другая история). Есть класс Cat в котором есть конструктор, пару методов и переопределенный метод equals и HashCode

public boolean equals(Object obj) {
    if (this == obj) return true;
    if (obj == null || getClass() != obj.getClass()) return false;
    Cat cat = (Cat) obj;
    return name.equals(cat.name) &&  weight.equals(cat.weight);
}
@Override
public int hashCode() {
    return Objects.hash(name, weight);
}

Далее есть метод получения всех кошек

 public List<User> getAllCats() {
    return new ArrayList<>(dataBase.values());
}

Я написал метод проверки на наличие котов таким вот способом

    public boolean isExists(Cat cat) {
    List<Cat> cats = getAllCats();
    Iterator<Cat> iterator = cats.iterator();
    while (iterator.hasNext()){
        if(iterator.equals(cat)){
            return true;
        }
    }
    return false ;

Ну собственно вопрос 1) что я сделал не так 2) Как бы сделали вы 3) Нужно сделать именно одним методом


Ответы (0 шт):