#288 Изменяемый объект в HashSet

Компании:
Золотая Корона
Темы:
JavaКоллекции и обобщенияКод ревью

Что будет выведено на экран? Объяснить каждую строку вывода:

class MyHashSet {
    public static void main(String[] args) {
        MyObject obj = new MyObject(10);
        Set<MyObject> set = new HashSet<MyObject>();
        set.add(obj);
        obj.set(1000);

        System.out.println(set.contains(obj));
        System.out.println(set.contains(new MyObject(10)));
        System.out.println(set.contains(new MyObject(1000)));
        System.out.println(Object.equals(new MyObject(1000), obj));
    }
}

class MyObject {
    private int i;

    private MyObject(int i) {
        set(i);
    }

    private void set(int i) {
        this.i = i;
    }

    public int hashCode() {
        return i;
    }

    public boolean equals(MyObject o) {
        return (o.i == this.i);
    }
}

Разбор вопроса

Ментор
Ответь как на реальном собеседовании. Я задам уточняющие вопросы, а затем сравню твой ответ с эталонным и покажу точность в %.
Войди, чтобы начать диалог Ментор ведёт диалог по текущему вопросу и учитывает предыдущие сообщения.
Войти