#428 Изменяемый ключ в HashMap

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

Что будет выведено на экран?

public class Main {
    public static void main(String[] args) {
        Map<Key, String> map = new HashMap<>();
        Key key = new Key();
        key.setKey("K1");
        map.put(key, "val1");
        key.setKey("K2");

        System.out.println(map.get(key)); // Что выведет код?
    }

    static class Key {
        private String key;
        public void setKey(String key) {
            this.key = key;
        }

        @Override
        public boolean equals(Object o) {
            if (this == o) return true;
            if (o == null || getClass() != o.getClass()) return false;
            Key key1 = (Key) o;
            return Objects.equals(key, key1.key);
        }

        @Override
        public int hashCode() {
            return Objects.hash(key);
        }
    }
}

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

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