Sobes.tech
Назад к вопросам
Junior — Middle
65

Какие изменения необходимо внести в структуру данных для поддержки составного ключа?

Компании, где спрашивали
Hftlabs

Ответ от нейросети

sobes.tech AI

Для поддержки составного ключа в структуре данных необходимо изменить представление ключа так, чтобы он мог содержать несколько полей. В Java это обычно достигается созданием отдельного класса, который объединяет все поля ключа, и переопределением методов equals() и hashCode() для корректного сравнения и хеширования.

Пример:

public class CompositeKey {
    private String part1;
    private int part2;

    public CompositeKey(String part1, int part2) {
        this.part1 = part1;
        this.part2 = part2;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        CompositeKey that = (CompositeKey) o;
        return part2 == that.part2 && Objects.equals(part1, that.part1);
    }

    @Override
    public int hashCode() {
        return Objects.hash(part1, part2);
    }
}

Такой ключ можно использовать, например, в HashMap<CompositeKey, Value> для корректного хранения и поиска по составному ключу.