Встречается на собеседованиях • сегодня

По каким критериям выберешь класс для добавления элемента в HashMap

При добавлении элемента в HashMap ключ должен правильно реализовывать hashCode() и equals(), чтобы обеспечить корректную работу структуры:

  1. hashCode():
    • Должен возвращать одинаковое значение для одного и того же объекта.
    • Если equals() возвращает true для двух объектов, их hashCode() должен быть одинаковым.
    • Желательно минимизировать коллизии.
  1. equals():
    • Должен быть рефлексивным, симметричным, транзитивным и консистентным.
    • Должен корректно сравнивать объекты.

Пример хорошего класса-ключа:

java
class Person {
    private final String name;
    private final int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Person person = (Person) o;
        return age == person.age && Objects.equals(name, person.name);
    }
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы