Sobes.tech
Junior — Middle
102

¿Qué cambios deben realizarse en la estructura de datos para soportar una clave compuesta?

Empresas donde se preguntó
Hftlabs

Respuesta de la IA

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> для корректного хранения и поиска по составному ключу.